我正在使用mod_rewrite将.html重写为.php。
RewriteRule ^([0-9a-zA-Z-_]+)\.html$ index.php?p=$1 [L]
但是,我在URL中使用$ _GET时遇到问题。如果请求的URL采用以下格式,则可以正常工作:index.php?a=f1
但是,如果它将其重写为home.html?a=f1
,则没有。
假设只是浏览器在点击.html后停止阅读。有没有办法使这项工作?
答案 0 :(得分:11)
您需要添加QSA
标志:
RewriteRule ^([0-9a-zA-Z-_]+)\.html$ index.php?p=$1 [QSA,L]
原因最好在文档中解释:
当替换URI包含查询字符串时,默认行为 RewriteRule是丢弃现有的查询字符串,并替换它 与新生成的一个。使用[QSA]标志会导致查询 要组合的字符串。
答案 1 :(得分:0)
你必须致电home.htm&a=f1
隐藏的网址是:index.php?p=home&a=f1