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

如何将Apache的.htaccess重写规则转换为Nginx规则?

Apache到Nginx SEO重定向规则迁移指南

问题根源与修正方案

你的Nginx规则未生效,核心问题是URI开头的斜杠匹配和查询参数清除处理不当,对应修正后的可生效规则如下:

分类页重定向(匹配原Apache规则)

rewrite ^/category/fridge-and-frozen/cheese$ /category/fridge-and-frozen/organic-cheese? permanent;

产品页重定向(匹配原Apache规则)

rewrite ^/product/Sprouted-Ezekiel-4:9-Brea-Pure-Life-11kg$ /product/Sprouted-Ezekiel-Bread-Pure-Life-11kg? permanent;

关键修正点说明

  • 开头的斜杠/:Nginx的rewrite指令匹配的是包含开头斜杠的完整URI(比如请求domain.com/xxx时,URI为/xxx),而Apache的.htaccess中RewriteRule匹配的是去掉域名后的路径(不带开头斜杠),必须补上/才能精准匹配。
  • 末尾的?:Apache规则里的?用于清除原请求的查询参数,Nginx中同样需要在目标路径后加?,避免原参数被追加到重定向后的URL里。
  • permanent关键字:对应Apache的R=301,表示永久重定向,符合SEO优化需求。

确保规则生效的配置注意事项

  1. 规则放置位置:将这些rewrite规则放在Nginx配置的server块内部,且要放在处理静态文件、PHP请求的location块之前,避免请求被提前拦截。
  2. 重载Nginx服务:修改配置后执行命令sudo nginx -s reload,让新规则生效。
  3. 测试验证:用curl命令检查重定向结果,示例:
    curl -I http://你的域名/category/fridge-and-frozen/cheese
    
    响应头中Location字段应指向目标URL,且状态码为301 Moved Permanently。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 10:25:04