Php .htaccess在不影响默认页面的情况下重写漂亮的URL
我有一个网站Php .htaccess在不影响默认页面的情况下重写漂亮的URL,php,apache,.htaccess,Php,Apache,.htaccess,我有一个网站www.example.com,它加载默认的index.php页面。我还有一个login.php,我为它设置了这个重写规则 不过,当我尝试访问www.example.com时,它会将我重定向到login.php 我希望在不影响默认页面的情况下保留规则。 请看下面。如果有人有任何想法那就太好了 # ensure permalink when url rewriting was enabled (login.php?r=content/perma&id=6 => /cont
www.example.com
,它加载默认的index.php页面
。我还有一个login.php
,我为它设置了这个重写规则
不过,当我尝试访问www.example.com
时,它会将我重定向到login.php
我希望在不影响默认页面的情况下保留规则。
请看下面。如果有人有任何想法那就太好了
# ensure permalink when url rewriting was enabled (login.php?r=content/perma&id=6 => /content/perma/?id=6
RewriteCond %{QUERY_STRING} ^r=content(/|%2)perma&id=([0-9]*)$
RewriteRule ^login\.php$ %{REQUEST_URI}/content/perma/?id=%2 [R=302,L]
RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
RewriteRule ^(.*) - [E=BASE:%1]
# Sets the HTTP_AUTHORIZATION header removed by apache
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule .? - [L]
RewriteRule .? %{ENV:BASE}/login.php [L]
您可以在站点root.htaccess中使用此代码:
# ensure permalink when url rewriting was enabled
# (login.php?r=content/perma&id=6 => /content/perma/?id=6
RewriteEngine On
RewriteCond %{QUERY_STRING} ^r=content(/|%2)perma&id=([0-9]*)$
RewriteRule ^login\.php$ %{REQUEST_URI}/content/perma/?id=%2 [R=302,L]
# Sets the HTTP_AUTHORIZATION header removed by apache
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . login.php [L]
将最后一条规则更改为“重写规则”。login.php[L]嘿,谢谢@anubhava!这就成功了。如果你想把它作为答案贴出来?