当有问题的 URL 带有圆括号时,我很难让基本的 301 重定向在 nginx 中工作。
通常,我会简单地使用这种类型的基本位置规则(不带括号):
location /abc/def {
rewrite /abc/def http://new.domain.com/abc/def/ permanent;
}
在上面提到的 URL 带有圆括号的情况下:
源网址:domain1.com/abc/def(ghi) 目标网址:domain2.com/abc/defghi
location /abc/def(ghi) {
rewrite /abc/def(ghi) http://new.domain2.com/abc/defghi permanent;
}
不幸的是,它不像第一个例子那么简单。从那以后,我已经多次更改规则以包括转义、用于打开和关闭圆括号的 urlencoded、正则表达式以允许在括号中捕获单个字符,但似乎没有任何效果。
通过以下方式逃脱:
location /abc/def\(ghi\)
当 URL 有括号时,如何获得 301 重定向以在 nginx 中工作?