【问题标题】:How to capture a 'sub-section' of a URL in a rewrite rule?如何在重写规则中捕获 URL 的“子部分”?
【发布时间】:2010-05-10 22:46:05
【问题描述】:

我知道标题有点奇怪,但网址如下所示:

/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]

但它不起作用......

我该怎么做?

【问题讨论】:

    标签: .htaccess mod-rewrite query-string


    【解决方案1】:

    您可以简单地使用 QSA 标志将原始查询附加到新查询:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-09
      • 1970-01-01
      • 2019-08-22
      • 1970-01-01
      • 1970-01-01
      • 2021-12-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多