我需要将图像文件重定向到不同的文件夹。我尝试使用:
RewriteCond %{HTTP_HOST} ^example.com$ [NC] RewriteCond %{REQUEST_URI} (.*)\.(png|gif|jpg|jpeg) RewriteRule ^(.*)$ images/$1 [L]
这将导致500个内部服务器错误,但以下操作有效:
RewriteCond %{HTTP_HOST} ^example.com$ [NC] RewriteCond %{REQUEST_URI} (.*)\.(png|gif|jpg|jpeg) RewriteRule ^(media/1.jpg)$ images/$1 [L]
这也适用于:
RewriteCond %{HTTP_HOST} ^example.com$ [NC] RewriteCond %{REQUEST_URI} (.*)\.(png|gif|jpg|jpeg) RewriteRule ^(.*)$ images/media/1.jpg [L]
我不明白为什么会这样,有什么帮助吗?
由于循环,您将得到500个错误。Apache一直使用mod_rewrite
模块运行重写的URI,直到它们无法匹配任何规则。
使用更好的检查尝试此规则:
RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$ [NC]
RewriteCond %{REQUEST_URI} !/images/ [NC]
RewriteRule \.(png|gif|jpe?g)$ images%{REQUEST_URI} [L,NC]
只有当URI中不存在/Image/
时,才会重写图像URL。