2013-12-13 152 views
2

我需要將圖像文件重定向到diferente文件夾。我試着使用:.htaccess RewriteRule 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] 

我想不通爲什麼這發生了,有什麼幫助?

回答

2

由於循環,您將收到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] 

這將改寫圖像的URL,只有當/images/中不存在URI。