Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess Mod rewrite将影响嵌入图像的下划线转换为破折号_.htaccess_Mod Rewrite_Url Rewriting - Fatal编程技术网

.htaccess Mod rewrite将影响嵌入图像的下划线转换为破折号

.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文件名 还有别的方法吗 在这两条规则中添加一些条件。您可以选择“如果请求的

我在.htaccess文件中实现了以下代码,以将所有下划线转换为破折号

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]