如果 requst_uri 包含一些数字,nginx 会重写

如果 requst_uri 包含一些数字,nginx 会重写

我对网站的一些重写规则遇到了一些小问题。

我的永久链接现在类似于 domain.com/ID/permalink-ID.html

永久链接的旧结构是 domain.com/permalink-ID.html

该 ID 是一个整数。

我如何为 nginx 创建重写规则以便

domain.com/permalink-ID.html 重定向到 domain.com/ID/permalink-ID.html

我可以手动完成...但大约有 25k 条这样的帖子。

谢谢

答案1

测试一下这个:

rewrite ^/?permalink-(\d+).html http://domain.com/$1/permalink-$1.html permanent;

答案2

由于数量和永久链接是动态的,这里提出的解决方案

    location ~* ^/(((?!/).)+)-(\d+)\.html$ {
        return 301 $scheme://$host/$3/$1-$3.html;
    }

对于重定向,您可以使用 return 而不是 rewrite。有关正则表达式方案的解释,请参阅本网站

相关内容