2010-05-10 55 views
0

我知道标题是有点怪,但这里的网址是什么样子:如何在重写规则中捕获URL的“子部分”?

/user/xxx/page 
/user/xxx/page?error=yyy 

第一个URL规则看起来是这样的:

RewriteRule ^user/(\d+)/page$ something.pl?id=$1 [L] 

,并使其工作与第二个URL,它变成:

RewriteRule ^user/(\d+)/page(error=\d+)?$ something.pl?id=$1 [L] 

我的问题是...我如何捕获错误号?我想这两个:

RewriteRule ^user/(\d+)/page(error=(\d+))?$ something.pl?id=$1&error=$2 [L] 
RewriteRule ^user/(\d+)/page(error=(\d+))?$ something.pl?id=$1&error=$3 [L] 

但它不工作...

我怎样才能做到这一点?

回答

2

您可以简单地使用QSA标志,以获得附加到新的一个原始查询:

RewriteRule ^user/(\d+)/page$ something.pl?id=$1 [L,QSA] 

现在的/user/xxx/page?error=yyy的请求将得到改写为/something.pl?id=xxx&error=yyy