[英]TYPO3 RealURL redirect loop for link and page with same title
經過多次調試后,大多數情況似乎無關緊要。 閱讀EDIT2了解您需要了解的內容。
我最近接手了TYPO3網頁的開發,並在realurl_conf.php中添加了兩個新的postVar。
它在主要語言上可以正常工作,但是在某些頁面上以不同於主要語言查看時,我陷入了重定向循環。
可以通過打開網站來復制循環(臨時重定向-代碼307),例如
http://example.com/subpage/?L=2 ,其中2是英語的語言ID,
subpage
是英語的標題。
如果我通過鏈接
http://example.com/unterseite/?L=2打開頁面,
unterseite
得到正確的頁面,而
unterseite
是該頁面的主要語言標題。
不幸的是,我看不到有關受影響頁面的模式。
共有3個頁面顯示了此行為,其中兩個頁面包含子頁面,第三頁面是沒有孩子的標准頁面。
其他11頁按預期工作,另外2頁有子級。
所有頁面均為標准內容類型。
失敗的realurl_conf.php如下所示:
<?php $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['realurl'] = array ( '_DEFAULT' => array ( 'pagePath' => array ( 'type' => 'user', 'userFunc' => 'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main', ), ), );
我似乎沒有找到問題,上周我一直在搜索它。
非常感謝任何提示或特定幫助。
編輯:刪除不必要的行。
使用tx_realurl類(未高級),其余代碼可靠地發生了問題,不會發生此問題,但是行為不符合預期。
EDIT2:經過大量Xdebug調試后,我意識到有一個標題為“子頁面”的頁面,還有一個輔助菜單,其中包含指向該頁面的鏈接。 打開URL example.com/subpage/時,它檢測到子頁面是子頁面的鏈接,並重定向到子頁面。 因此,如果有多個匹配項,我正在尋找一種使頁面優先於鏈接的方法。
我猜這是錯誤的,應該刪除:
'valueDefault' => 'de',
L參數的默認值應在TypoScript中設置,而不應在RealUrl中設置。 我認為,如果使用數字值,則必須在此處輸入。
TYPO3在“ _.htaccess”下提供了一個“ .htacess”文件。 從TYPO3 6.2.4中我得到:
RewriteRule ^(.+)\.(\d+)\.(php|js|css|png|jpg|gif|gzip)$ $1.$3 [L]
# Main URL rewriting.
# For httpd.conf, use this line instead of the next one:
# RewriteRule .* /TYPO3root/index.php [L]
RewriteRule .* index.php [L]
將您的“ .htacess”文件與TYPO3的“ _.htaccess”中的條目進行比較。 也許您在那里缺少L參數。
您應該提供有關您網站上重定向的詳細示例。
今天,在升級TYPO3和realurl之后,我剛剛遇到了第二個遇到此問題的站點。
TL; DR解決方案: 將快捷方式的“語音URL路徑段”更改為不同於name的任何內容 。
我這邊的情況是:
在我看來,這僅在安裝realurl 2.x時出現。 升級之前,兩個站點的realurl為1.12.x或1.13.x,並且沒有任何問題。
在代碼級解決問題之前, 可能的解決方案是將快捷方式的“ Speaking URL path segment”更改為與name不同的任何內容 。 路徑段沒有在任何地方使用,但是更改它會使您擺脫麻煩。
這在我這邊停止了兩個站點上幾個頁面/快捷方式對的重定向。
realurl往復循環的另一個來源:
對我來說,這是一個損壞的手動realurl配置,其中沒有設置rootpage_id 。 切換到自動配置或更改為正確的rootpage_id均可解決此問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.