Исключение ядра TYPO3: «Идентификатор был вне домена» вместо ошибки 404 - PullRequest
0 голосов
/ 07 августа 2020

из-за некоторых изменений в структуре страницы многие из наших страниц изменили pid. Это не имеет значения с точки зрения SEO из-за говорящих URL-адресов, но есть множество сторонних ссылок с неправильными pid, например:

https://www.myDomain.de/index.php?id=46&no_cache=1&sword_list[0]=someWord

Страница с uid 46 существует, но не является предполагаемой, и она теперь находится в другом домене. Таким образом, результатом является следующее исключение:

Core: Exception handler (WEB): Uncaught TYPO3 Exception: #1518472189: 
ID was outside the domain | TYPO3\CMS\Core\Error\Http\PageNotFoundException 
thrown in file typo3/sysext/frontend/Classes/Controller/ErrorController.php 
in line 80. Requested URL: 
https://www.myDomain.de/index.php?id=46&no_cache=1&sword_list[0]=someWord

Мой вопрос:

Могу ли я сказать TYPO3 не генерировать исключение, а обрабатывать все внешние события домена просто как 404 с перенаправлением на страница ошибки?

спасибо!

Ответы [ 2 ]

0 голосов
/ 07 августа 2020

Отображение вашей 404-страницы с правильным кодом состояния в этом случае, по моему опыту, к сожалению, не слишком очевидно.

Самый простой для ?id=... с удаленными / перемещенными страницами (которые из-за этого не отображаются на правильный сайт) заключается в перенаправлении на полезные страницы с помощью EXT: redirect или на уровне веб-сервера.

Это пример с EXT: redirect:

EXT:redirect

If there's nothing comparable in the new content that you could redirect to, you can show your 404-page, e.g. by a passthrough ([PT] with Apache mod_rewrite https://httpd.apache.org/docs/2.4/mod/mod_rewrite.html). В этом случае вы должны убедиться, что отправили статус 404. (Например, через .htaccess, userFun c на странице 404, ...).

Надеюсь, у кого-нибудь есть идея попроще.

0 голосов
/ 07 августа 2020

Должно быть возможно, добавив обработку ошибок 404 в модуле управления сайтом: Управление сайтом -> Сайты -> Ваш сайт -> Вкладка «Обработка ошибок» -> Создать новый

...