Apache .htaccess配置:如何将/en/下带ID的产品页重定向到指定子目录
该需求完全可以实现,你可以通过Apache的mod_rewrite模块编写.htaccess重写规则完成配置,具体操作如下:
前置要求
- 确保你的Apache服务器已经开启
mod_rewrite模块 - 站点配置中已经将对应目录的
AllowOverride参数设置为All,允许.htaccess文件生效
对应重写规则
场景1:原产品名无固定前缀,所有带数字ID的产品页统一转移到/products/目录下
匹配所有/en/[任意字符]-[数字]格式的URL,重定向到/en/products/[任意字符]-[数字],规则如下(.htaccess放在站点根目录即可):
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / # 仅匹配/en/下末尾带数字ID的路径,不会影响分类页等其他/en/下的页面 RewriteRule ^en/([a-zA-Z0-9_-]+)-(\d+)$ /en/products/$1-$2 [L,R=301,NC] </IfModule>
场景2:原产品名固定带product前缀(和你给出的示例一致,productname转name)
如果你的原产品URL的产品名都是product开头,希望重定向后去掉该前缀,就用以下规则:
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^en/product([a-zA-Z0-9_-]+)-(\d+)$ /en/products/$1-$2 [L,R=301,NC] </IfModule>
注意事项
- 规则中的
R=301代表永久重定向,对SEO友好,测试阶段可以临时改成R=302避免浏览器缓存错误的重定向规则 - 如果你需要的目标路径是你示例中拼写的
prodcucts,自行将规则中的products替换为对应拼写即可 - 配置完成后清除浏览器缓存再测试,保证规则生效
内容的提问来源于stack exchange,提问作者MaS1982
相关产品推荐
相关产品推荐

