URL重写和重定向

问题描述:

我有一个小问题,我想要重写URL和重定向规则。例如,我想显示abc.php的内容,当有人打开abc.html,这可以用URL重写来完成:URL重写和重定向

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

但是,如果有人直接在浏览器中打开abc.php,我想发送他们在abc.html,当我把301重定向它不起作用,因为它会产生循环。

我该怎么做?

您可以使用:

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