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

Nginx配置URL重写失效问题:移除/product/路径

解决Nginx /product/ URL重写不生效的问题

根据你的描述和提供的配置,问题核心在于缺少HTTPS(443端口)的server配置,导致实际访问的HTTPS请求根本没走到你写的重写规则里。以下是具体的修复方案:

问题根源拆解

你的当前配置只监听了80端口(HTTP协议),但用户实际访问的是https://www.beecow.info/...这类HTTPS地址,这部分请求完全没被重写规则所在的server块处理,自然不会有任何变化。

修复后的完整配置

# 处理非www的HTTP请求,跳转到HTTPS的www域名
server {
    listen 80;
    server_name beecow.info;
    return 301 https://www.beecow.info$request_uri;
}

# 处理www的HTTP请求,直接跳转到HTTPS
server {
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name www.beecow.info localhost;
    return 301 https://$server_name$request_uri;
}

# 核心:处理HTTPS请求的server块
server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name www.beecow.info;

    # 替换为你的SSL证书实际路径
    ssl_certificate /path/to/your/fullchain.crt;
    ssl_certificate_key /path/to/your/private.key;

    root /var/www/html/;

    # 优先匹配/product/开头的请求,执行重写
    location ^~ /product/ {
        rewrite ^/product/(.*)$ /$1 permanent; # 301永久重定向更利于SEO
    }

    # 处理其他所有请求
    location / {
        try_files $uri$args $uri$args/ /index.html;
    }
}

关键调整说明

  • 新增443端口server块:这是让重写规则生效的核心,所有HTTPS请求都会进入这个块处理。
  • 简化HTTP跳转逻辑:把原来的if判断换成直接return 301,Nginx官方不推荐在server块用if处理跳转,这样更高效且避免逻辑冲突。
  • 优化location匹配优先级:用^~ /product/替代正则匹配,确保/product/路径的请求优先被处理,不会被后面的location /拦截。
  • 改用301永久重定向:如果是永久移除/product/路径,301状态码能告诉搜索引擎旧地址已永久迁移,更符合SEO规范。

验证步骤

  1. 将修改后的配置替换原文件(通常在/etc/nginx/nginx.conf或/etc/nginx/sites-available/目录下)。
  2. 测试配置合法性:nginx -t
  3. 重启Nginx服务:systemctl restart nginx(不同系统可能是service nginx restart)
  4. 访问原URL https://www.beecow.info/product/whosaler-san-pham-shop-dang-590-34-390-k-p345954,应该会自动跳转到移除/product/后的地址。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:01:23