我正在使用Nginx
并在网站的.conf
中设置了一些重定向规则,例如
if ($query_string ~ "Search=shelving"){ rewrite .*$ /shelving.html? redirect; }
因此,"Search=shelving"
的任何网址都会重定向到/shelving.html
这样可以正常工作,但我有其他规则在字符串中有+,这些规则不起作用,例如
if ($query_string ~ "Search=metal+shelving"){ rewrite .*$ /shelving.html? redirect; }
这不起作用,我认为+正在打破它,无论如何都在这周围?
由于
编辑:
我希望重定向的网址示例是:
https://example.com/SearchResults.aspx?Search=metal+shelving
答案 0 :(得分:0)
我会写这样的东西:
map $arg_search $redirect_url {
default "";
"metal shelving" /shelving.html;
"metal+shelving" /shelving.html;
"metal%2bshelving" /shelving.html;
"metal%2Bshelving" /shelving.html;
}
server {
...
if ($redirect_url) {
return 301 $redirect_url;
}
...
}
只是为了涵盖所有可能的网址编码。
答案 1 :(得分:0)
你应该像这样更新你的nginx规则
if ($query_string ~ "Search=metal\+shelving"){ rewrite .*$ /shelving.html? redirect; }