Html .htaccess以重写URL';带参数的s

Html .htaccess以重写URL';带参数的s,html,.htaccess,Html,.htaccess,我希望更改以下示例中的URL: www.website.com/?page=about www.website.com/?page=info www.website.com/?page=contact 为此: www.website.com/about www.website.com/info www.website.com/contact 这应该是可行的,我希望有一条规则。我一直在四处寻找,但我看到人们分别做每一件事。 所以唯一的URL参数是“页面”,网站只有一个深度。应该很容易吧?:)

我希望更改以下示例中的URL:

www.website.com/?page=about
www.website.com/?page=info
www.website.com/?page=contact
为此:

www.website.com/about
www.website.com/info
www.website.com/contact
这应该是可行的,我希望有一条规则。我一直在四处寻找,但我看到人们分别做每一件事。
所以唯一的URL参数是“页面”,网站只有一个深度。应该很容易吧?:)

这是一个非常基本的常见问题。这将进入根目录中的.htaccess

RewriteEngine On
RewriteBase /

#prevent anyone from using the old urls
RewriteCond %{THE_REQUEST} [A-Z]{3,}\ /+\?page=([^&\ ]+) [NC]
RewriteRule ^ /%1? [R=301,L]

#provide pretty URL's
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ /?page=$1 [L]

这是一个非常基本的共同问题。这将进入根目录中的.htaccess

RewriteEngine On
RewriteBase /

#prevent anyone from using the old urls
RewriteCond %{THE_REQUEST} [A-Z]{3,}\ /+\?page=([^&\ ]+) [NC]
RewriteRule ^ /%1? [R=301,L]

#provide pretty URL's
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ /?page=$1 [L]

您可以在
文档\u ROOT/.htaccess
文件中使用此代码:

RewriteEngine On
RewriteBase /

RewriteCond %{THE_REQUEST} \s/+\?page=([^\s&]+) [NC]
RewriteRule ^ %1? [R=302,L,NE]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/.]+)/?$ ?page=$1 [L,QSA]

您可以在
文档\u ROOT/.htaccess
文件中使用此代码:

RewriteEngine On
RewriteBase /

RewriteCond %{THE_REQUEST} \s/+\?page=([^\s&]+) [NC]
RewriteRule ^ %1? [R=302,L,NE]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/.]+)/?$ ?page=$1 [L,QSA]

我很好奇:您是否有什么特别的原因倾向于使用
请求
,而不是
查询字符串
?毕竟,这里只需要测试查询字符串。。。我只是认为,对于那些刚开始修改的人来说,这可能看起来有点混乱,特别是因为没有多少人知道请求通常包含什么……使用
QUERY\u STRING
将导致重定向循环,因为在第二条规则中
QUERY\u STRING
被重写为
?page=…
<代码>在执行其他规则后,_请求不会更改其值。当然,我一直在使用dummy
&r
s来防止循环。这更有意义-感谢您的澄清。我很好奇:您是否有什么特别的原因倾向于使用
请求
而不是
查询字符串
?毕竟,这里只需要测试查询字符串。。。我只是认为,对于那些刚开始修改的人来说,这可能看起来有点混乱,特别是因为没有多少人知道请求通常包含什么……使用
QUERY\u STRING
将导致重定向循环,因为在第二条规则中
QUERY\u STRING
被重写为
?page=…
<代码>在执行其他规则后,_请求不会更改其值。当然,我一直在使用dummy
&r
s来防止循环。这更有意义——谢谢你的澄清。