2016-03-04 214 views
0

我有一個小問題,我想要重寫URL和重定向規則。例如,我想顯示abc.php的內容,當有人打開abc.html,這可以用URL重寫來完成:URL重寫和重定向

RewriteEngine On 
RewriteRule ^abc\.html$ abc.php [NC,L] 

但是,如果有人直接在瀏覽器中打開abc.php,我想發送他們在abc.html,當我把301重定向它不起作用,因爲它會產生循環。

我該怎麼做?

回答

2

您可以使用:

RewriteEngine On 

RewriteCond %{THE_REQUEST} /abc\.php[\s?] [NC] 
RewriteRule^/abc.html [R=301,L] 

RewriteRule ^abc\.html$ abc.php [NC,L] 
+0

大anubhav,它的工作,你可以請解釋工作:RewriteEngine敘述在 的RewriteCond%{} THE_REQUEST /abc\.php[\s] [NC] RewriteRule^/abc.html [R = 301,L] –

+0

第一個重定向規則使用'THE_REQUEST'變量表示Apache從瀏覽器接收到的原始請求,並且在執行一些重寫規則後它不會被覆蓋。 – anubhava

+0

如果確實如此,[您可以通過點擊本答案左上角的勾號**標記答案](http://meta.stackexchange.com/a/5235/160242) – anubhava