1
我試圖創建一個modrewrite規則將改變的特定部分:簡單modrewrite刪除路徑
/blah/correct/xyz.htm
到
/correct/xyz.htm
沒有總是/blah
但是當它在那裏,它總是出現在URL的開頭。該URL可以是任意長度的,具有多個子路徑。它甚至可能是/blah/myfile.htm
(它應該重寫爲/myfile.htm
)。
這樣做的最好方法是什麼?
我試圖創建一個modrewrite規則將改變的特定部分:簡單modrewrite刪除路徑
/blah/correct/xyz.htm
到
/correct/xyz.htm
沒有總是/blah
但是當它在那裏,它總是出現在URL的開頭。該URL可以是任意長度的,具有多個子路徑。它甚至可能是/blah/myfile.htm
(它應該重寫爲/myfile.htm
)。
這樣做的最好方法是什麼?
啓用mod_rewrite的,並通過httpd.conf
的.htaccess,然後把這個代碼在你.htaccess
下DOCUMENT_ROOT
目錄:
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase/
RewriteRule (?:^|/)blah(/.+)$ /$1 [L,NC]
這會在內部轉發/blah/foo
到/foo
或/blah/correct/foo
到/correct/foo
。如果你想外部重寫,然後使用:
RewriteRule (?:^|/)blah(/.+)$ /$1 [L,R=301,NC]
現在檢查編輯答案。 – anubhava
輝煌 - 完美的作品。謝謝! – Eric
不客氣,很高興它解決了。 – anubhava