.htaccess 重写 $_GET 变量

.htaccess rewrite $_GET variables

我有以下页面:

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

我想重写它,使其如下所示

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

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

RewriteEngine ON
RewriteBase /

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

您应该更准确地指定允许的字符类型并且您应该确保您之前的规则不会导致您以后的规则被忽略。

所以你应该把你最具体的规则放在第一位,如果你想为你的新闻和页面 ID 使用数字,你应该使用例如:

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