如何将一个catch全部添加到htaccess重定向正则表达式?

时间:2014-05-23 13:44:16

标签: regex apache .htaccess mod-rewrite

我的htaccess中有以下行

RewriteRule ^([^/.]+)/([^/.]+)/r/([^/.]+)/?$ /index.php?slug_1=$1&slug_2=$2&ref=$3 [L]

所以,blah.com / a / b / r / c /转到blah.com?slug_1=a&slug_2=b&ref=c

我还想捕获并附加所有额外的查询参数

因此,如果我转到blah.com/a/b/r/c?d=e&f=g,那么它会重定向到blah.com?slug_1=a&slug_2=b&ref=c&d=e& ; F =克

1 个答案:

答案 0 :(得分:1)

您的规则是正确的,但您需要QSA标志:

RewriteRule ^([^/.]+)/([^/.]+)/r/([^/.]+)/?$ /index.php?slug_1=$1&slug_2=$2&ref=$3 [L,QSA]

QSA被称为Q uery S tring A ppend,用于保留原始查询字符串,同时添加新的查询字符串。