2013-04-29 54 views
1

我需要重定向 「example.com/image/img.jpg」 到 「example.com/view/img.jpg」使用的.htaccess

所以我用

RewriteRule (^|.*?/)image/(.*)$ /$1view/$2 [R=302,L,NC] 
重定向爲.jpg

但是,如果我嘗試訪問「example.com/image/img.jpg」,它將不會重定向。我究竟做錯了什麼?

謝謝。

+0

嘗試在RewriteRule前的'.htaccess'中添加'RewriteEngine On',它可以幫助 – petrch 2013-04-29 17:45:05

+0

我在'.htaccess'開頭已經有'RewriteEngine On'。我需要添加兩次嗎?我的意思是在'RewriteRule'之前呢? – Grainier 2013-04-29 17:52:43

+1

一次就夠了。我測試了我的網絡服務器上的規則,它工作。 Web服務器處理'.htaccess'文件嗎?檢查服務器配置中的AllowOverride指令,或在.htaccess中產生語法錯誤,並查看它是否導致錯誤500. – petrch 2013-04-29 18:17:13

回答

1

我需要重定向「example.com/image/img.jpg」到「example.com/view/img.jpg」

顯然,上述例子並不準確,因爲你的規則表示:目錄imageview可以在相應的URL目錄結構中的任何級別。

如果是那樣的話,你可以在一個.htaccess文件的根目錄試試這個:

Options +FollowSymlinks -MultiViews 
RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_URI} ^/(.*)?image/([^.]+)\.jpg [NC] 
RewriteRule .*    /%1view/%2.jpg  [R,L,NC] 

如果imageview目錄確實是在第一級作爲例子說明,取代過去的2線與這一個:

RewriteRule ^image/(.*) /view/$1 [R,L,NC] 

替換[R,L,NC]與[R = 301,L,NC]永久重定向或與[L,NC]用於內部映射。