Ric*_*ick 2 php apache .htaccess mod-rewrite url-rewriting
我正在使用mod_rewrite将.html重写为.php.
RewriteRule ^([0-9a-zA-Z-_]+)\.html$ index.php?p=$1 [L]
Run Code Online (Sandbox Code Playgroud)
但是,我在URL中使用$ _GET时遇到问题.如果请求的URL采用以下格式,它可以正常工作:index.php?a=f1
但是,如果它重写它home.html?a=f1
,没有.
假设只是浏览器在点击.html后停止阅读.有没有办法让这项工作?
Sal*_*n A 11
你需要添加QSA
标志:
RewriteRule ^([0-9a-zA-Z-_]+)\.html$ index.php?p=$1 [QSA,L]
Run Code Online (Sandbox Code Playgroud)
原因最好在文档中解释:
当替换URI包含查询字符串时,RewriteRule的默认行为是丢弃现有查询字符串,并将其替换为新生成的查询字符串.使用[QSA]标志会导致组合查询字符串.