nginx 重定向到新的 url 如果脚本名称只包含数字

nginx redirect to new url if script name is only contain numbers

如果脚本名称只包含数字,我该如何重定向?

http://example.com/125689 -> http://example.com/news/125689

我使用了这段代码,但出现了 404 错误。

location ~ /([0-9]+) {
    return 301 http://example.com/news/;
}

你创建了一个重定向循环,因为你的正则表达式没有锚定到行的开头,所以它也匹配重写的 URI。

您可以通过添加 ^$ 来限制正则表达式的范围。

location ~ ^(/\d+)$ {
    return 301 $scheme://$host/news;
}

有关正则表达式的有用资源,请参阅 this