我已经在我的 .htaccess 文件中实现了以下代码,以将所有下划线转换为破折号。
RewriteRule ^([^_]*)_([^_]*_.*) $1-$2 [L]
RewriteRule ^([^_]*)_([^_]*)$ /$1-$2 [L,R=301]
上面的代码有效,但是在从 /images 目录嵌入图像时遇到了问题。
例如,如果其中一个图像文件名包含下划线,则无法正确加载。
如何从上述规则发出图像和 javacript 文件名???
还有另一种方法吗?
我已经在我的 .htaccess 文件中实现了以下代码,以将所有下划线转换为破折号。
RewriteRule ^([^_]*)_([^_]*_.*) $1-$2 [L]
RewriteRule ^([^_]*)_([^_]*)$ /$1-$2 [L,R=301]
上面的代码有效,但是在从 /images 目录嵌入图像时遇到了问题。
例如,如果其中一个图像文件名包含下划线,则无法正确加载。
如何从上述规则发出图像和 javacript 文件名???
还有另一种方法吗?
为 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]