Как перенаправить несуществующие страницы на страницу ошибки 404 с помощью.htaccess?
Видимо Бингбот попал в бесконечный цикл на моем сайте. Он загружает страницы, такие как http://www.htmlcodetutorial.com/quicklist.html/applets/applets/applets/applets/applets/applets/applets/applets/applets/applets/applets/applets/applets/applets/sounds/forms/linking/frames/document/linking/images/_AREA_onMouseOver.html. Поскольку я настроил свой сервер для интерпретации.html как PHP, страница является просто копией http://www.htmlcodetutorial.com/quicklist.html. Как мне остановить Bingbot от поиска этих поддельных копий?
Почему Bingbot ищет эти страницы для начала?
Я хотел бы сделать что-то вроде последней строки файла.htaccess, показанного ниже (например, в " Перенаправить на страницу 404 Apache с mod_rewrite?"), Но когда я пытаюсь RewriteRule ^.*\.html\/.*$ - [R=404]
весь сайт показывает 500 ошибок.
Даже когда я использую последнюю строчку ниже, она перенаправляет на http://www.htmlcodetutorial.com/home/htmlcode/public_html/help.html что не то, что я хотел.
AddType application/x-httpd-php .php .html
RewriteEngine on
Options +FollowSymlinks
RewriteRule ^help\/.* help.html [L]
RewriteCond %{HTTP_HOST} ^example.com
RewriteRule (.*) http://www.htmlcodetutorial.com/$1 [R=301,L]
ErrorDocument 404 /404.html
RewriteRule ^.*\.html\/.*$ help.html [R=301]
PS Я знаю, что сайт устарел.
2 ответа
Измените свое последнее правило на это:
RewriteRule ^(.+?\.html)/.+$ - [R=404,L,NC]
Проблема в том, что у вас либо есть Multiviews
или Apache интерпретирует запросы как /quicklist.html/blah/blah
как запрос стиля PATH_INFO, который будет интерпретирован как действительный запрос.
Поэтому отключите многовидовые изображения, изменив строку параметров на:
Options +FollowSymlinks -Multiviews
Затем замените свое последнее правило на:
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d
RewriteRule ^ - [L,R=404]