我有以下规则来实现这一目标:
RewriteCond %{QUERY_STRING} ^(.*)brandPage=1&?(.*)$
RewriteRule (.*) $1?%1%2
RewriteRule /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
即这不应与/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)
答案 0 :(得分:0)
我从来没有这样做但如果我理解你的话,你可以尝试在第一次重写时设置一个环境变量,然后在第二次重写之前为这个变量添加一个条件检查。类似的东西:
func getWithPath(path:String, userState: Any)