You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

电商长格式商品URL转短格式的301重定向规则咨询

实现旧商品URL到短格式的mod_rewrite重定向

没问题,我帮你整理了一套精准的mod_rewrite规则,完美适配你的需求,同时避免不必要的匹配和循环重定向:

核心规则(添加到你的.htaccess或Apache配置文件)

# 启用重写引擎
RewriteEngine On

# 条件1:排除包含"/info/"的页面(内容页等)
RewriteCond %{REQUEST_URI} !/info/

# 条件2:排除已经是新格式的商品URL(避免循环重定向)
RewriteCond %{REQUEST_URI} !^/\d+--

# 规则:匹配旧格式URL,提取最后的商品ID+名称部分并重定向
RewriteRule ^.*/(\d+--.*)$ /$1 [L,R=301]

规则细节解释

  • RewriteEngine On:开启mod_rewrite功能,这是所有重写规则的前提。
  • 第一条RewriteCond:使用!表示否定匹配,确保包含/info/的页面不会被这条规则处理,完美排除你提到的内容页面。
  • 第二条RewriteCond:同样是否定匹配,^/\d+--匹配直接以/数字--开头的新格式URL,防止重定向循环(避免新URL又被匹配成旧URL重定向)。
  • RewriteRule
    • ^.*/:匹配URL开头任意层级的分类路径(不管有多少个分类子目录都能覆盖)。
    • (\d+--.*)$:捕获URL最后一部分(商品ID+名称,比如1450--my-widget),用$1引用这个捕获组。
    • [L,R=301]L表示这是最后一条要执行的规则;R=301是永久重定向,对SEO友好,告诉搜索引擎更新索引中的URL。

测试建议

  • 可以用命令行工具测试重定向是否生效:
    curl -I https://yourdomain.com/categoryname/subcat1name/subcat2name/1450--my-widget
    
    响应头里应该能看到Location: https://yourdomain.com/1450--my-widgetHTTP/1.1 301 Moved Permanently
  • 如果规则不生效,检查Apache是否启用了mod_rewrite模块,以及.htaccess文件是否配置了AllowOverride All权限。

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

火山引擎 最新活动