我想从
https://www.example.com/blog?page=2
到
https://www.example.com/blog/page/2
我尝试使用这个配置:
location = /blog {
if ($args ~* “page=(.*)") {
rewrite ^ /blog/page/$arg_page? permanent;
}
}
它不会转到第二页(它停留在第一页),并且 url 仍然是/blog?page=2
。所以它根本不起作用。
有什么想法吗?谢谢
答案1
永远不要将块放在if
内部location
。这只会导致意想不到的结果。
在上下文中, sif
非常安全server
。但是,这可能也不起作用。尝试:
server {
...
if ($arg_page ~ "\d+") {
rewrite ^/blog$ /blog/page/$arg_page? permanent;
}
...
}
PS 如果你可以在特定情况下使用可以做的map
事情if
,那么一般来说,你应该map
只使用。(在你的情况下你不能:)