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

PrestaShop 1.7自动删除.htaccess中Facebook令牌相关代码求助

PrestaShop 1.7 .htaccess自定义代码被自动删除的解决办法

我使用PrestaShop 1.7版本,系统会不定期自动删除.htaccess文件中去除Facebook fbclid令牌的代码段。当前我的.htaccess内容如下:

# ~~start~~ 
# .htaccess automaticaly generated by PrestaShop e-commerce open-source solution
# http://www.prestashop.com - http://www.prestashop.com/forums

<IfModule mod_rewrite.c>
<IfModule mod_env.c>
SetEnv HTTP_MOD_REWRITE On
</IfModule>

RewriteEngine on


#Domain: mydomain.cz
RewriteRule . - [E=REWRITEBASE:/]
RewriteRule ^api$ api/ [L]


    # Strip Facebook spyware tokens
RewriteCond %{REQUEST_METHOD} =GET [NC,OR]
RewriteCond %{REQUEST_METHOD} =HEAD [NC]
RewriteCond %{QUERY_STRING} ^(.*)&?fbclid=[^&]+$ [NC]
RewriteRule ^/?(.*)$ /$1?%1 [NE,L,R=301,E=limitcache:1]
Header always set Cache-Control "max-age=604800" env=limitcache

RewriteRule ^api/(.*)$ %{ENV:REWRITEBASE}webservice/dispatcher.php?url=$1 [QSA,L]

解决思路及方法

PrestaShop会在执行更新、保存SEO/URL设置、生成URL重写规则等操作时,自动重新生成.htaccess文件,覆盖用户自定义的修改。针对这个问题,有以下几种可行方案:

  • 修改.htaccess生成模板
    找到PrestaShop根目录下的config/htaccess.txt文件,这是系统生成.htaccess的模板。在文件中合适的位置(比如RewriteEngine on之后、API规则之前)添加你需要保留的Facebook令牌处理代码,保存模板。之后系统每次自动生成.htaccess时,都会包含这段自定义代码。

  • 禁用自动生成.htaccess功能
    进入后台“首选项 > SEO与URL”设置页面,取消勾选“自动生成.htaccess文件”选项。之后.htaccess文件不会被系统自动覆盖,但需要注意:后续如果新增URL重写规则、修改域名等操作,需要手动更新.htaccess文件,避免出现链接失效问题。

  • 使用独立的自定义规则文件
    在网站根目录创建一个自定义规则文件(比如custom_htaccess_rules.conf),将Facebook令牌处理代码写入该文件。然后在主.htaccess文件中添加一行指令引入这个文件:

    Include custom_htaccess_rules.conf
    

    注意:需要确保服务器的Apache配置允许使用Include指令(需开启mod_include模块)。如果主.htaccess仍会被覆盖,也需要把这行Include指令添加到config/htaccess.txt模板中。

内容的提问来源于stack exchange,提问作者Jirka de Lucina

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 07:25:17