【发布时间】:2015-07-10 20:11:25
【问题描述】:
我有以下规则来实现这个目标:
- 查询字符串brandPage=1(示例a、b、c、d)需要删除,但要保留所有添加的查询字符串(示例B)
- /browse 需要改成/brand
RewriteCond %{QUERY_STRING} ^(.*)brandPage=1&?(.*)$RewriteRule (.*) $1?%1%2RewriteRule /browse/(.*) /brand/$1 [QSA,R=301,L]
示例a. /browse/aerolatte/_/N-1z13u3z?brandPage=1
b. /browse/room/aerolatte/_/N-4wk7Z1z13u3z?brandPage=1&icmp=abc
c. /browse/women/womens-tops-600001558/armani-jeans/_/N-53f3Z4gpgZ1z13u2h?brandPage=1
d. /browse/%C3%A5ry-trays/_/N-1z13va1?brandPage=1
e。这不应该匹配/browse/aerolatte/_/N-1z13u3zq
重定向的网址是什么样的:
/brand/aerolatte/_/N-1z13u3z
/brand/room/aerolatte/_/N-4wk7Z1z13u3z?icmp=abc
/brand/women/womens-tops-600001558/armani-jeans/_/N-53f3Z4gpgZ1z13u2h
这适用于示例 a 到 d,但也适用于 e。我现在明白这是因为只有 RewriteCond 之后的第一个 RewriteRule 被链接,因此我如何将两个 RewriteRule 组合起来,或者我可以在每一行上使用 [C] 将它们简单地链接在一起?
我正在使用 IHS 6.1.0.47 (Apache 2.0.47)
【问题讨论】:
标签: regex apache mod-rewrite url-rewriting