realURL:清理路径缓存和url-cache

时间:2016-09-05 14:41:05

标签: typo3 typo3-7.6.x realurl

我在使用realURL Cache时遇到了一些问题。例如:

“主页”页面的网址为/the-shoe/home。翻译成瑞士(德国)的网址是:/ch/der-schuh/home。这里的问题是网址/ch/the-shoe/home也有效。

我的想法是,这是一个缓存问题。因为页面被翻译并且在页面标题被翻译之前页面被调用

所以我尝试用后端模块“Speaking URL”清理缓存。我在URL缓存中Flush all entries并删除了此页面中的路径和路径缓存中的语言。

但这并没有改变任何事情。我仍然可以致电/ch/der-schuh/home/ch/the-shoe/home,两者都有效。调用两个URL后,我也可以在URL缓存中再次看到它们(但不在路径缓存中): enter image description here

那么为什么这是一个问题

  • 我不希望2个网址带来相同的内容
  • 有时<f:link_page>和co。使用“错误”网址(而非翻译网址)创建链接。
  • 当我在后端登录时,“错误”的网址将无效!

现在我的问题是,这个问题来自哪里?我该如何解决?看起来只是清除缓存并不能解决问题。

任何想法?

2 个答案:

答案 0 :(得分:4)

这是一个RealURL错误,我实际上已经通过修补RealURL修复了一次(当时在RealURL v1中,但是我确定你会找出它现在的代码行)。

应用此修补程序后,再也无法访问包含原始页面标题的翻译页面(我的项目需要避免重复的内容和页面)。

diff --git a/realurl/class.tx_realurl_advanced.php b/realurl/class.tx_realurl_advanced.php
index 5af10a6..2860eb1 100644
--- a/realurl/class.tx_realurl_advanced.php
+++ b/realurl/class.tx_realurl_advanced.php
@@ -1073,6 +1073,11 @@ class tx_realurl_advanced {
                // Process titles. Note that excluded segments are also searched
                // otherwise they will never be found
                $uidTrack[$row['uid']] = $row;
+               // If the page has a page translation, don't add the titles from the default language to the list
+               // of valid pages, the translation is processed below.
+               if ($this->pObj->getDetectedLanguage() > 0) {
+                   continue;
+               }
                foreach ($segTitleFieldArray as $fieldName) {
                    if ($row[$fieldName]) {
                        $encodedTitle = $this->encodeTitle($row[$fieldName]);

答案 1 :(得分:0)

在realURL v2.0.14中修复了一半的问题。

现在最好的解决方法是禁用realURL的缓存。