Субдомены, которые не существуют, индексируются Google - удаление субдомена Zombie через .htaccess - PullRequest
0 голосов
/ 30 октября 2018

У меня возникла необычная проблема, когда Google индексирует субдомены моего сайта, которые не существуют. Похоже, что эти «субдомены» созданы из орфографических ошибок, таких как w. ww.. Есть даже несколько примеров индексации http://abc.www.example.com.

Мое главное беспокойство вызывает дублирование контента в SERPS, так как некоторые из этих несуществующих / зомби-субдоменов проиндексированы Google. Я хочу, чтобы эти субдомены либо выпали из SERPS, либо были перенаправлены на защищенный www. версия сайта.

У меня есть опыт в веб-разработке, но конфигурация сервера и правила перезаписи .htaccess / mod не самая большая моя сила.

В настоящее время существует правило переписывания для принудительной установки https по всему сайту - можно ли это изменить, чтобы принудительно перенаправить субдомены зомби на https://www.? Если это возможно, могу ли я убедиться, что это не влияет на реальные субдомены сайта?

Текущий .htaccess Редирект:

RewriteCond %{HTTP_HOST} ^example\.com [NC]
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.example.com/$1 [NC,R=301,L]

1 Ответ

0 голосов
/ 30 октября 2018

Чтобы ответить на комментарии ... Вы не можете заблокировать имена хостов (субдомены) в robots.txt, если все субдомены указывают на одно и то же место (один и тот же сайт), если только вы внутренне не переписали эти запросы в другой файл robots-block.txt. Однако robots.txt не обязательно предотвращает индексацию , это предотвращает сканирование , и если эти субдомены уже проиндексированы, то они будут оставаться проиндексированными в течение некоторого времени, если вы просто заблокируете ползет .

Вы на общем сервере? Или у тебя есть свой? Это будет проблемой «хоста по умолчанию», если это ваш собственный сервер и ваш сайт является первым (или единственным) хостом, определенным на нем. (Это редкая проблема для общего сервера.) В противном случае это звучит так, как будто у вас есть поддомен «подстановочный знак», определенный в DNS (и соответствующий ServerAlias в конфигурации сервера).

Удалите подстановочный поддомен, и это решит вашу проблему.

В противном случае вы можете перенаправить (или заблокировать) любые неканонические хосты в .htaccess. Например:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^(www\.)?example\.com
RewriteRule ^ - [F]

Выше будет отправлено 403 Запрещено для любого запроса, который не для example.com или www.example.com.


За исключением:

RewriteCond %{HTTP_HOST} ^example\.com [NC]
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.example.com/$1 [NC,R=301,L]

Это не правильно. Это только канонизирует http://example.com. Он не будет канонизировать / перенаправлять http://www.example.com или https://example.com, так как эти два условия неявно AND'd. Вам нужно OR два условия:

RewriteCond %{HTTP_HOST} ^example\.com [NC,OR]
RewriteCond %{SERVER_PORT} 80

Для соответствия example.com или http.

...