如何在 Nginx 中使用查询字符串进行重定向以进行分页

如何在 Nginx 中使用查询字符串进行重定向以进行分页

我想从

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只使用。(在你的情况下你不能:)

相关内容