htaccess重写规则附加查询字符串参数

时间:2011-10-12 14:21:29

标签: .htaccess mod-rewrite rewrite

我正在尝试为以下网址编写重写规则:redirect

  • www.domain.com/mbc-exwww.domain.com
  • www.domain.com/mbc-ex?abcd=123www.domain.com

基本上,我不希望在重定向后有任何查询字符串参数。这是我试过的规则

^/mbc-ex\?(.*)$  http://www.domain.com [NC,L,U]

上述规则仍附加查询字符串参数

^/mbc-ex$ http://www.domain.com [NC,L,U]

这个按预期工作

2 个答案:

答案 0 :(得分:0)

看起来您的正则表达式根本不匹配。

^/mbc-ex\?(.*)$ http://www.domain.com  [NC,L,U]

根据http://httpd.apache.org/docs/2.0/misc/rewriteguide.html的示例,您不需要在问号上使用反斜杠。

这是一个方便的在线测试工具,用于检查您的规则:http://martinmelin.se/rewrite-rule-tester/

使用它我可以使用以下规则让您的网址正常工作:

RewriteRule ^mbc-ex/?(.*) http://www.domain.com [NC,L,U]

答案 1 :(得分:0)

您需要QSD | qsdiscard标志

^/mbc-ex  http://www.domain.com [NC,L,U,QSD]

自apache2 2.4.0起

Pre 2.4.0:添加?到你的新网址结尾

^/mbc-ex  http://www.domain.com? [NC,L,U]