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!这就成功了。如果你想把它作为答案贴出来?