Yar*_*nST 13 rewrite nginx querystring
我喜欢这个简单的重写规则:
/somefolder/mypage.aspx?myid=4343&tab=overview
Run Code Online (Sandbox Code Playgroud)
重定向到:
/folder/4343/overview/
Run Code Online (Sandbox Code Playgroud)
我寻找了一些解决方案,但没有一个真正奏效。
我试过:
rewrite ^/somefolder/mypage.aspx?myid=(.*)&tab=overview$ /folder/$1/overview permanent;
Run Code Online (Sandbox Code Playgroud)
和
rewrite ^/somefolder/mypage\.aspx\?myid=(.*)&tab=overview$ /folder/$1/overview permanent;
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?我收到 404
(更简单的规则工作得很好..)
谢谢
cns*_*nst 35
Valery Viktorovsky 答案的更短、更正确的版本。
location = /somefolder/mypage.aspx {
if ($arg_tab != overview) { return 404; }
if ($arg_myid !~ "^\d+$") { return 404; }
rewrite ^ /folder/$arg_myid/overview? permanent;
}
Run Code Online (Sandbox Code Playgroud)
或者,嘿,如果您不需要验证参数,它甚至可以更短:
rewrite ^/somefolder/mypage.aspx /folder/$arg_myid/$arg_tab? permanent;
Run Code Online (Sandbox Code Playgroud)
Val*_*sky 12
如果你想重定向
location ~ /somefolder/mypage.aspx {
if ($args ~* "^myid=(\d+)&tab=overview") {
set $mid $1;
set $args '';
rewrite ^.*$ /folder/$mid/overview permanent;
}
}
Run Code Online (Sandbox Code Playgroud)
不要忘记配置 /folder/$1/overview 位置。
| 归档时间: |
|
| 查看次数: |
32867 次 |
| 最近记录: |