我已将以下代码实现到我的.htaccess文件,以将所有下划线转换为破折号。
RewriteRule ^([^_]*)_([^_]*_.*) $1-$2 [L]
RewriteRule ^([^_]*)_([^_]*)$ /$1-$2 [L,R=301]
上面的代码有效,但是当我从/ images目录中嵌入图像时遇到了一个问题。
例如,如果其中一个图像文件名包含下划线,则无法正确加载。
如何从上述规则中发出图像和javacript文件名???
还有另一种方法吗?
答案 0 :(得分:0)
为2条规则添加一些条件。您可以选择“检查请求是否为不存在的文件”,或者“检查请求是否以(jpe?g | png | bmp | gif)结尾”。第一个应该涵盖其他东西,比如访问其他资源(javascript,css等)的URL,所以他们也不会有他们的下划线转换,第二个只处理图像。您需要添加以上条件:
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]