我有一个动态网址如下
http://www.xxxx.com/black/xxxx/xxxx
http://www.xxxx.com/blue/xxxx/xxxx
http://www.xxxx.com/red/xxxx/xxxx
我想将301重定向到上面的网址
http://www.xxxx.com/color/black/xxxx/xxxx
http://www.xxxx.com/color/blue/xxxx/xxxx
http://www.xxxx.com/color/red/xxxx/xxxx
我正在尝试像这样的匹配
location ~ /(black|blue|red)(/(.+)?)?$ {
}
先谢谢!
答案 0 :(得分:1)
location
正则表达式应该包含URI开头的锚点。
如果您只尝试匹配包含后缀/xxxx/xxxx
的URI,则可以使用字符类[^/]
来匹配非斜杠字符。
使用return
语句可以直接重定向:
location ~ ^/(black|blue|red)/[^/]+/[^/]+$ {
return 301 /color$request_uri;
}
正则表达式location
块的评估顺序非常重要。将此块置于可能存在冲突规则的其他块之上。
有关详细信息,请参阅this document。