.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]
我的重定向有问题。
基本上,我使用页面 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]