Nginx 301重定向规则配置需求:域名迁移路径转换
Nginx 301永久重定向配置(域名迁移场景)
针对你需要将example.com/gaming/*路径下的所有请求重定向到g.example.com/*的需求,可以通过以下Nginx配置实现:
核心配置代码
在example.com对应的server块中添加以下规则:
server { listen 80; listen [::]:80; server_name example.com; # 重定向/gaming/xxx到g.example.com/xxx rewrite ^/gaming/(.*)$ https://g.example.com/$1 permanent; # 处理不带尾部斜杠的/gaming请求,重定向到g.example.com根路径 rewrite ^/gaming$ https://g.example.com/ permanent; # 此处保留example.com原有业务的其他配置 # ... }
如果你的站点已启用HTTPS,需对应调整listen端口并添加SSL配置:
server { listen 443 ssl; listen [::]:443 ssl; server_name example.com; # SSL证书相关配置 ssl_certificate /path/to/your/cert.pem; ssl_certificate_key /path/to/your/key.pem; # 重定向规则 rewrite ^/gaming/(.*)$ https://g.example.com/$1 permanent; rewrite ^/gaming$ https://g.example.com/ permanent; # 其他业务配置 # ... }
配置说明
rewrite ^/gaming/(.*)$ https://g.example.com/$1 permanent;:通过正则表达式捕获/gaming/之后的所有路径内容(即postName部分),将其拼接到新域名后,permanent标识这是301永久重定向,会被搜索引擎识别并更新索引。- 第二条rewrite规则专门处理
example.com/gaming(不带尾部斜杠)的请求,避免出现跳转不完整或404的情况。
验证方法
配置完成后,重启Nginx服务:
sudo systemctl restart nginx
可以使用curl命令测试重定向是否生效:
curl -I http://example.com/gaming/test-post
若返回的响应头中Location字段为https://g.example.com/test-post,则配置生效。
内容的提问来源于stack exchange,提问作者Fares Saleh
相关产品推荐
相关产品推荐

