.htaccess重写$ _GET变量

时间:2015-01-26 19:04:21

标签: php .htaccess rewrite

我有以下页面:

http://localhost/?news=19&page=2

我想重写一遍,以便它如下所示

http://localhost/news/19/page/2

这是我的.htaccess文件,但我的代码不起作用:(

RewriteEngine ON
RewriteBase /

RewriteRule ^page/(.*)$ /?page=$1 [L]
RewriteRule ^news/(.*)$ /?news=$1 [L]
RewriteRule ^news/(.*)/page/(.*)$ /?news=$1&page=$2 [L]

1 个答案:

答案 0 :(得分:1)

您应该更准确地指定允许的角色类型,您应该确保先前的规则不会导致您的后续规则被忽略。

因此,您应该首先使用最具体的规则,如果您想要新闻和网页ID的数字,则应使用例如:

RewriteRule ^page/(.*)$ /?page=$1 [L]
RewriteRule ^news/(\d*)/page/(\d*)$ /?news=$1&page=$2 [L]
                   ^^ just a digit instead of any character `.`
RewriteRule ^news/(.*)$ /?news=$1 [L]