Regex 如何向htaccess重定向正则表达式添加一个catch all?

Regex 如何向htaccess重定向正则表达式添加一个catch all?,regex,apache,.htaccess,mod-rewrite,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

我的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=g

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

RewriteRule ^([^/.]+)/([^/.]+)/r/([^/.]+)/?$ /index.php?slug_1=$1&slug_2=$2&ref=$3 [L,QSA]
QSA
被称为
Q
uery
S
tring
A
ppend,它在添加新查询字符串时保留原始查询字符串