即使经过漫长的阅读,Apache重写文档仍然让我感到困惑。
目前我正在使用以下.htaccess网址重写规则:
RewriteRule ^([_0-9a-zA-Z-]+)\.html$ index.php?a=p&p=$1 [nc]
这会重写像
这样的内容http://www.website.com/thepagename.html
到
http://www.website.com/index.php?a=p&p=thepagename
工作正常。
现在我需要对其进行修改以允许可选查询参数,该参数可能或者不能添加到原始(未重写)URL。 E.g:
http://www.website.com/thepagename.html?req=login
甚至
http://www.website.com/thepagename.html?req=login&usr=johndoe
必须将重写为:
http://www.website.com/index.php?a=p&p=thepagename&req=login
和
http://www.website.com/index.php?a=p&p=thepagename&req=login&user=johndoe
分别在不破坏原始重写的情况下(即没有将可选查询参数添加到unrewritten URL上)。
尽我所能,我无法弄清楚正确的语法。有人能指出我正确的方向吗?
TNX!
// FvW
答案 0 :(得分:3)
您只需添加'QSA`标记(查询字符串追加)
RewriteRule ^([_0-9a-zA-Z-]+)\.html$ index.php?a=p&p=$1 [L,QSA,NC]
更多信息(和示例)here