Как перенаправить несуществующие страницы на страницу ошибки 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]
Другие вопросы по тегам