You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nginx中含/page/的分页URL不存在时301重定向配置需求

Nginx实现含/page/的URL不存在时301重定向到无/page/版本

要实现你需求的功能,仅用try_files无法单独完成,需要结合Nginx的正则匹配、命名location和rewrite指令,以下是具体配置方案:

核心配置

在你的Nginx server块中添加如下配置:

server {
    listen 80;
    server_name example.com;
    root /path/to/your/site;

    # 匹配所有包含/page/的请求
    location ~* /page/ {
        # 先尝试访问请求的文件或目录,不存在则跳转到命名location
        try_files $uri $uri/ @redirect_without_page;
    }

    # 处理重定向的命名location
    location @redirect_without_page {
        # 正则捕获/page/之前的路径,重定向到该路径(301永久重定向)
        rewrite ^(.*)/page/.*$ $1/ permanent;
    }

    # 其他站点基础配置(比如静态文件处理、PHP解析等)
}

配置说明

  • location ~* /page/:使用不区分大小写的正则匹配,覆盖所有包含/page/的URL请求
  • try_files $uri $uri/ @redirect_without_page:优先检查当前请求的URI对应的文件或目录是否存在,若存在则直接返回资源;若不存在,触发命名location@redirect_without_page
  • rewrite ^(.*)/page/.*$ $1/ permanent:通过正则捕获/page/之前的全部路径内容,将请求301重定向到该路径。permanent表示永久重定向,符合SEO优化需求

效果验证

  • 当访问example.com/x-y-z/page/186/且该路径无对应资源时,会自动301重定向到example.com/x-y-z/
  • 当访问example.com/page/2020/且该路径无对应资源时,会自动301重定向到example.com/

注意事项

  • 如果你的站点存在真实的/page/路径资源,该配置不会影响正常访问,因为try_files会优先返回存在的资源
  • 若你有其他更具体的location规则,需确保这个匹配/page/的location优先级正确(正则匹配的优先级高于普通前缀匹配)
  • 301重定向会被浏览器缓存,测试时建议使用无痕浏览窗口或清除浏览器缓存

内容的提问来源于stack exchange,提问作者Doraemon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 13:42:12