我正在使用涉及自定义用户页面的CMS。我有一个设置了三个级别的层次结构,它运行得很好。它有一个.htaccess,使URL更友好:
RewriteRule ^([A-Za-z0-9]+).html /content.php?page=$1 [L]
RewriteRule ^([A-Za-z0-9]+)/([A-Za-z0-9]+).html /content.php?page=$2 [L]
RewriteRule ^([A-Za-z0-9]+)/([A-Za-z0-9]+)/([A-Za-z0-9]+).html /content.php?page=$3 [L]
该代码工作正常。
我的另一个功能是添加自定义php页面,以防我需要添加更强大的功能(例如制作一个从数据库中获取电子邮件地址的联系表单)。
所以我的问题是如何修改(或添加).htaccess以使所有GET参数传递给PHP页面。例如,要使用联系页面示例,如果用户转到http://www.mysite.com/contact.html?name=someuser,我希望.htaccess将其重写为content.php?page = contact& name = someuser,但没有明确告诉它要查找'name'作为参数名称。我也希望它能够使用尽可能多的参数。
我知道这是一个很大的(并且希望不会混淆)请求,但它有可能吗?或至少部分内容?谢谢!
答案 0 :(得分:17)
将QSA添加到您的参数中。因此,对于你的第一条规则,它将成为
RewriteRule ^([A-Za-z0-9]+).html /content.php?page=$1 [L, QSA]
答案 1 :(得分:8)
您需要使用QSA(查询字符串追加)标志。 mod_rewrite documentation有更详细的内容。