2014-01-28 52 views
1

所以,我試圖做到這一點:「雙向」重寫

我們有一個網址/brand/new-inventory.php。這是我們網站內的物理文件。 我想要的是/brand/new。現在很簡單。我不得不補充的是RewriteRule ^brand/new$ brand/new-inventory.php [L,QSA]

現在,我想獲得的設置和我一直在掙扎是這樣的:

我們需要/brand/new-inventory.php有人觀看時重定向到/brand/new所以我們有一致的URL和什麼,而不是。

但是,當我嘗試RewriteRule ^brand/new-inventory.php$ brand/new [R=301,L] Firefox開始抱怨一個永遠不會結束的重定向循環。

如何重寫頁面以響應不同的URL,並將舊URL重定向到新頁面?

回答

1

有這樣說:

RewriteCond %{THE_REQUEST} \s/+brand/new-inventory\.php[/\s?] [NC] 
RewriteRule^/brand/new [R=302,L] 

RewriteRule ^brand/new$ /brand/new-inventory.php [L,NC] 

不同的是使用的%{THE_REQUEST}表示,從您的瀏覽器Apache接收到原始請求。這個變量的值不會隨着其他重寫規則的應用而改變。

+0

什麼是\ s/+?爲什麼在請求URI之前會有空格? – marcaddeo

+0

'%{THE_REQUEST}'有這個內容'GET /brand/new-inventory.php HTTP/1.1' – anubhava