[英]How to prevent foreign GET parameters in TYPO3's canonical tag?
如果在前端使用未預見的 GET 參數調用未緩存的頁面,並且已從外部源的鏈接附加到 URL,例如跟蹤參數或更糟糕的東西,例如......
https://www.example.com/?note=any-value
… 然后這個外部參數在自動生成的規范標簽中傳遞,由 TYPO3 的核心擴展 ext:seo 創建。 它看起來像這樣:
<link rel="canonical" href="https://www.example.com/?note=any-value&cHash=f2c206f6f14a424fdbf82f683e8bf383"/>
另外,頁面保存在緩存中也帶有這個參數。 這意味着后續訪問者也會收到這個不正確的規范標簽,即使他們在沒有參數的情況下調用頁面https://www.example.com/也是如此。
這是一個錯誤(在 TYPO3 10.4.15 上測試過)還是可以通過配置禁用所有未知參數?
如果你知道參數,你可以在全局配置中排除它......
[FE][cacheHash][excludedParameters] = L,pk_campaign,pk_kwd,utm_source,utm_medium,…
...或通過站點包中的 ext_localconf.php:
$GLOBALS['TYPO3_CONF_VARS']['FE']['cacheHash']['excludedParameters'][] = 'tlbid';
我只關心沒有預料到的參數。 扭轉這個概念並基本上排除除了一些自定義允許參數之外的所有參數可能是有意義的,但我不知道到目前為止是否可能。
知道了。 實際上,TYPO3 已經為其他常見的跟蹤和附加參數處理了這些,如L
、 utm_campaign
、 fbclid
等。排除參數的完整列表可以在源代碼中找到。
要添加您自己的,只需添加/修改typo3conf/AdditionalConfiguration.php
文件,例如:
<?php
$GLOBALS['TYPO3_CONF_VARS']['FE']['cacheHash']['excludedParameters'][] = 'note';
$GLOBALS['TYPO3_CONF_VARS']['FE']['cacheHash']['excludedParameters'][] = 'foo';
$GLOBALS['TYPO3_CONF_VARS']['FE']['cacheHash']['excludedParameters'][] = 'bar';
或者
<?php
$GLOBALS['TYPO3_CONF_VARS']['FE']['cacheHash']['excludedParameters'] = array_merge(
$GLOBALS['TYPO3_CONF_VARS']['FE']['cacheHash']['excludedParameters'],
['note', 'foo', 'bar'],
);
畢竟不要忘記清除緩存:D(這應該是TYPO3的口號)
這是一個錯誤。 擴展urlguard2解決了這個問題。
它在 TYPO3 V11.5.16 中對我不起作用
本地配置:
[FE][cacheHash][excludedParameters] = L,tx_solr,sword_list,utm_source,utm_medi ...
瀏覽器 URL:
https://www.example.org/testfaelle/test?sword_list%5B0%5D=testf%C3%A4lle&no_cache=1
HTML 前端規范是:
<link rel="canonical" href="https://www.example.org/testfaelle/test?sword_list%5B0%5D=testf%C3%A4lle&cHash=e81add4ca148ad10189b9cbfa4d57100">
調試:
如果我在文件中輸入 go:“/typo3/sysext/frontend/Classes/Utility/CanonicalizationUtility.php”並直接添加參數: $paramsToExclude[] = 'sword_list';
作品:
<link rel="canonical" href="https://www.example.org/testfaelle/test">
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.