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

PrestaShop无尾斜杠分类页面301重定向至带尾斜杠

解决方案:PrestaShop分类页无尾斜杠301重定向到带尾斜杠版本

你的规则无效的核心原因是重定向规则放在了PrestaShop默认重写规则之后,默认规则里的[L]标志会让重写引擎停止处理后续规则,导致你的重定向永远不会被触发。

正确的做法是把重定向规则放到.htaccess文件的最顶部,在所有PrestaShop默认规则之前,同时调整规则确保兼容站点目录结构:

# 先添加301重定向规则(放在文件最顶部)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !\.html$
RewriteRule ^(.*[^/])$ %{ENV:REWRITEBASE}$1/ [L,R=301]

# 以下是你原有的PrestaShop规则
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ %{ENV:REWRITEBASE}index.php [NC,L]

规则说明:

  • RewriteCond %{REQUEST_FILENAME} !-f:跳过真实存在的文件(比如图片、CSS等静态资源)
  • RewriteCond %{REQUEST_FILENAME} !-d:跳过真实存在的物理目录
  • RewriteCond %{REQUEST_URI} !\.html$:保留.html结尾的产品页面不被重定向
  • RewriteRule ^(.*[^/])$ %{ENV:REWRITEBASE}$1/ [L,R=301]:匹配所有不以斜杠结尾的URL,301重定向到带尾斜杠的版本,%{ENV:REWRITEBASE}确保适配站点不在根目录的情况

注意事项:

  1. 修改后清空浏览器缓存再测试,因为301永久重定向会被浏览器缓存
  2. 如果你的站点在根目录,%{ENV:REWRITEBASE}就是/,规则会正常工作;如果在子目录,PrestaShop会自动设置这个环境变量,无需手动修改

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 20:08:17