我想将网址重定向http://mysite.com/?action=add&goback=1
到http://myiste.com/add/?goback=1
.
我来到:
location / {
if ($request_uri ~* /\?action.*) {
add_header Cache-Control private;
rewrite ^/\?action=([^&]*)&?(.*)$ /$1/?$2 permanent;
}
}
但它不起作用,我不明白为什么。
PS我add_header
只需要表明if ($request_uri ~* /\?action.*) {
发生了。我尝试了其他几种解决方案,例如
rewrite ^/\?action=(\w+).*$ /$1/?$query_string permanent;
没有成功。
更新:
实际目标是:
如果 URL 看起来像这样
http://mysite.com/add/?param1=param1&...
/(add)/ 应该成为一个动作参数:
location ~ /[\-\w]+/ {
rewrite ^/([^/]*).*$ /?action=$1 last;
...
}
这似乎工作正常,我想我不需要额外的帮助
如果 URL 看起来像这样:
http://mysite.com/?action=add¶m1=param1&...
nginx 应该重定向到:
http://mysite.com/add/?param1=param1&...
当我尝试做这部分时,我得到了我不需要的结果 - 无限重定向循环、URL 等http://mysite.com/add/?action=add¶m1=param1&...
。
有解决我的目标的解决方案吗?