TYPO3: Bingbot создает ошибку ext_form, которая кэшируется
У нас проблема с одной из наших установок TYPO3. Bingbot, который посещает сайт, вызывает контроллер старого расширения ext_form без параметров и создает ошибку.
207.46.13.XXX - - [16/Oct/2018:00:18:48 +0200] "GET example.html?tx_form_form%5Baction%5D=process HTTP/1.1" 200 10256 "-" "Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)"
Проблема для нас не в том, что это происходит, а в том, что TYPO3 кэширует сайт с "К сожалению, произошла ошибка! Код: 20181016001848e0153dcf" в качестве содержимого.
Есть ли способ сказать TYPO3, чтобы не кэшировать сайт, если произошла ошибка, или отправить бота на сайт 404, если он вызывает сайт с ложными параметрами.
1 ответ
Есть несколько вещей, которые вы можете сделать:
- исключить страницу с параметрами в
robots.txt
(Изменить: после рассмотрения это решение, вероятно, не подходит для конкретной проблемы) - перенаправить в
.htaccess
если страница вызывается без обязательного параметра, то перенаправление также должно распознаваться ботом. - проверьте, почему бот даже вызывает страницу без обязательного параметра, возможно, вы можете избежать этого.
- Bing может быть настроен для конкретного URL, эта страница может быть отправной точкой для вас.
РЕДАКТИРОВАТЬ:
Пример для htaccess (не тестировался):
RewriteCond %{QUERY_STRING} .+
RewriteRule ^example.html?tx_form_form%5Baction%5D=process$ example.html [L,R=301,QSD]
Цель example.html
может быть что угодно, либо пользовательская страница 404, либо просто просмотр списка. Код 301
в [L,R=301,QSD]
можно настроить в соответствии с кодами состояния HTTP (3xx). Если он перенаправлен на (пользовательскую) страницу 4xx, код статуса HTTP должен быть соответствующим (404
или, возможно, другое 4xx-сообщение о статусе, т.е. 400
).