mod_rewrite单个“目录”保留其余的URL变量

时间:2013-03-06 20:18:40

标签: php apache .htaccess mod-rewrite

我是否可以将一个URL var别名添加到目录中,然后任何其他URL变量都保留在字符串中?

实施例: 如果我有一个联系页面,并希望根据快速URL变量交换“关于”选择。

?page = contact =>加载包含所有默认值的联系页面

?page = contact& about = bug =>为自动选择的错误报告加载具有相关选择选项的联系人

#Enable rewrite engine
RewriteEngine On
#contact,contact/ -> page=contact
RewriteRule ^contact?$ ?page=contact [L]
RewriteRule ^contact/?$ ?page=contact [L]

这适用于域/联系人/,但如果我添加其他网址变量,即使它们出现在网址中,也会被删除。

我知道我可以这样做:

RewriteRule ^contact/bug/?$ ?page=contact&regarding=bug [L]

但我宁愿让它接受任意数量的旗帜,以防我想在那里做额外的东西。

我希望能够拥有domain.com/contact/和domain.com/contact/?regarding=bug

1 个答案:

答案 0 :(得分:0)

追加QSA标志就是我追求的目标。感谢马里奥指出这一点。

供参考,代码为:

#Enable rewrite engine
RewriteEngine On
#contact,contact/ -> page=contact
RewriteRule ^contact?$ ?page=contact [L,QSA]
RewriteRule ^contact/?$ ?page=contact [L,QSA]