提问者:小点点

.htaccess重写规则500内部服务器错误


我需要将图像文件重定向到不同的文件夹。我尝试使用:


    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]

我不明白为什么会这样,有什么帮助吗?


共1个答案

匿名用户

由于循环,您将得到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。