.htaccess Mod rewrite将影响嵌入图像的下划线转换为破折号
我在.htaccess文件中实现了以下代码,以将所有下划线转换为破折号.htaccess Mod rewrite将影响嵌入图像的下划线转换为破折号,.htaccess,mod-rewrite,url-rewriting,.htaccess,Mod Rewrite,Url Rewriting,我在.htaccess文件中实现了以下代码,以将所有下划线转换为破折号 RewriteRule ^([^_]*)_([^_]*_.*) $1-$2 [L] RewriteRule ^([^_]*)_([^_]*)$ /$1-$2 [L,R=301] 上面的代码可以工作,但在嵌入/images目录中的图像时遇到了一个问题 例如,如果其中一个图像文件名包含下划线,则无法正确加载 如何根据上述规则发出图像和JavaScript文件名 还有别的方法吗 在这两条规则中添加一些条件。您可以选择“如果请求的
RewriteRule ^([^_]*)_([^_]*_.*) $1-$2 [L]
RewriteRule ^([^_]*)_([^_]*)$ /$1-$2 [L,R=301]
上面的代码可以工作,但在嵌入/images目录中的图像时遇到了一个问题
例如,如果其中一个图像文件名包含下划线,则无法正确加载
如何根据上述规则发出图像和JavaScript文件名
还有别的方法吗 在这两条规则中添加一些条件。您可以选择“如果请求的文件不存在,则检查请求是否结束”,或者“检查请求是否以(jpe?g | png | bmp | gif)结尾”。第一个应该包括其他内容,比如访问其他资源的URL(javascript、css等),这样它们就不会转换下划线,第二个只处理图像。您需要在这两个规则上面添加条件:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^_]*)_([^_]*_.*) $1-$2 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^_]*)_([^_]*)$ /$1-$2 [L,R=301]
或
RewriteCond %{REQUEST_URI} !\.(jpe?g|png|bmp|gif)$ [NC]
RewriteRule ^([^_]*)_([^_]*_.*) $1-$2 [L]
RewriteCond %{REQUEST_URI} !\.(jpe?g|png|bmp|gif)$ [NC]
RewriteRule ^([^_]*)_([^_]*)$ /$1-$2 [L,R=301]