Mod-Rewrite
為所有圖像請求插入根目錄
我正在進行站點遷移,我需要為圖像文件設置一些重定向。某些圖像路徑請求將進入根級子目錄,我需要將
/new_directory/
它們放在第一個目錄中,如下所示:Old site request -> new request website.com/dir1/image.png -> website.com/new_directory/dir2/subdir1/image.gif website.com/dir2/subdir1/image.gif -> website.com/new_directory/dir2/subdir1/image.gif
這是我到目前為止所擁有的,但它似乎沒有工作。我錯過了什麼?
RewriteCond %{HTTP_REQUESTURI} (dir1|dir2|dir3)(.+?)(jpg|png|gif|jpeg) [NC,OR] RewriteCond %{HTTP_REQUESTURI} (dir4|dir5|dir6)(.+?)(jpg|png|gif|jpeg) [NC,OR] RewriteCond %{HTTP_REQUESTURI} (dir7|dir8|dir9)(.+?)(jpg|png|gif|jpeg) [NC] RewriteRule ^(.+?)$ /new_directory/$1 [R=301,L]
我有幾
RewriteCond
行被打斷,因為我的實際目錄列表很長,我希望規則適合一個螢幕寬度。
這對我有用;確保您擁有
RewriteEngine on
,否則將不會處理重定向。如果您想查看是否mod_rewrite
被擊中,請使用RewriteLog
:RewriteLog /tmp/rewrite.log RewriteLogLevel 3
如果您在重新啟動後沒有收到任何輸出,
mod_rewrite
甚至還沒有啟用。此外,您可以像這樣簡化程式碼:
RewriteCond %{REQUEST_URI} ^/dir[1-9]/.+\./(jpg|png|gif|jpeg)$ [NC] RewriteRule ^/(.*)$ /new_directory/$1 [R=301,L]
這將與您的相同,除了:
- 它將不再匹配
/some/other/dir1/image.gif
,/dir1/jagif
或/dir1isagif
。- 重定向的 URL 將不再包含雙斜杠:
/new_directory//dir1/image.gif
.- 您不再需要擔心貪婪或非貪婪搜尋。
如果我誤解了你的問題,請告訴我!