.htaccess 重写和 GET 参数

.htaccess rewriting and GET parameters

我的重定向有问题。

基本上,我使用页面 GET 变量获取页面名称,如下所示: index.php?page=page1,我希望 page1.html

访问

然后,如果还有其他get变量,我只想追加它们,就像这样: page1.html?var1=value1 指向 index.php?page=page1&var1=value1

我尝试了以下方法:

RewriteRule ^([a-zA-Z]+)\.html$  index.php?page=  [L]
RewriteRule ^([a-zA-Z]+)\.html\?(.*)$  index.php?page=&  [L]

而且除了页面变量,我似乎从未得到任何其他获取参数...
谢谢

您需要使用 Query String Append 标志。

根据文档:

When the replacement URI contains a query string, the default behavior of RewriteRule is to discard the existing query string, and replace it with the newly generated one. Using the [QSA] flag causes the query strings to be combined.

像这样更新您的规则:

RewriteRule ^([a-zA-Z]+).html$ index.php?page= [L,QSA]