TYPO3 8.7.31中cs_seo 3.1.0首页Canonical标签L=0参数异常求助
解决cs_seo插件首页Canonical标签多余L=0参数的问题
嘿,咱们来搞定TYPO3 8.7.31环境下cs_seo 3.1.0插件给首页Canonical标签自动加上多余?L=0参数的问题,这几个实用方案你可以挨个试试:
方案1:检查并调整cs_seo的插件配置
首先先看看插件本身有没有可配置的选项来关闭默认语言参数:
- 登录TYPO3后台,找到「扩展」菜单下的「配置」,定位到cs_seo的全局配置
- 查找类似「为默认语言添加L参数」或者「Canonical URL包含语言参数」的开关,把它关掉
- 另外也可以到首页的页面属性里,找到cs_seo的专属设置项,看看能不能手动指定首页的Canonical URL,直接填不带参数的
http://mydomain.tld/就行
方案2:用TypoScript强制覆盖首页的Canonical URL
如果插件配置里没找到对应的选项,那就用TypoScript来强行修改:
- 进入后台的「模板」模块,编辑根模板的TypoScript代码
- 添加下面这段代码(注意把
value = 1里的1改成你实际的首页UID):
page.headerData.10 { override.cObject = TEXT override.cObject { value = http://mydomain.tld/ if { equals.field = uid value = 1 } } }
这段代码的作用是:当访问首页时,直接把Canonical URL替换成不带任何参数的域名地址,完全忽略插件生成的带?L=0的链接。
方案3:修改cs_seo插件代码(谨慎操作)
如果上面两种方法都不管用,那可以尝试修改插件的核心代码,但要注意升级插件会覆盖你的修改,所以操作前一定要备份:
- 找到cs_seo插件的安装目录,一般在
typo3conf/ext/cs_seo/ - 定位到生成Canonical URL的服务类,比如
Classes/Service/CanonicalService.php - 找到生成URL的方法(比如
getCanonicalUrl),在返回URL之前加入判断逻辑,移除首页的?L=0参数 - 举个简单的代码修改示例(具体要根据插件实际代码调整):
// 假设原代码生成的URL存在$url变量中 if ($GLOBALS['TSFE']->id == 1 && strpos($url, '?L=0') !== false) { $url = str_replace('?L=0', '', $url); } return $url;
内容的提问来源于stack exchange,提问作者lisardo
相关产品推荐
相关产品推荐

