2010-07-20 3 views
0

Я сохраняю свои файлы Sitemap в своей веб-папке. Я хочу, чтобы веб-сканеры (Googlebot и т. Д.) Могли получить доступ к файлу, но я не обязательно хочу, чтобы все и каждый имели доступ к нему.Вопрос о файлах Sitemap

Например, этот сайт (stackoverflow.com) имеет индекс сайта - как указано в файле robots.txt (https://stackoverflow.com/robots.txt).

Однако, когда вы набираете https://stackoverflow.com/sitemap.xml, вы попадаете на страницу 404.

Как я могу реализовать одно и то же на своем веб-сайте?

Я запускаю сайт LAMP, также использую файл индекса sitemap (так что у меня есть несколько карт сайта для сайта). Я хотел бы использовать тот же механизм, чтобы сделать их недоступными через браузер, как описано выше.

ответ

0

Во-первых, решить, какие сети, в которых вы хотите получить свою фактическую карту сайта.

Во-вторых, настройте веб-сервер для предоставления запросов от этих сетей для файла Sitemap и настройте ваш веб-сервер для перенаправления всех других запросов на страницу ошибки 404.

Для nginx вы хотите вставить что-то вроде allow 10.10.10.0/24; в блок location для файла Sitemap.

Для apache вы хотите использовать директиву mod_authz_host в директиве <Files> для файла Sitemap.

+0

Это, безусловно, так, как я хочу. пользовательские агенты довольно легко подделать, так что это имеет некоторые апелляции. Я знаю, что это ни в коем случае не «волшебная серебряная пуля», но я думаю, что она (по крайней мере, незначительно) более надежна, чем логика на стороне сервера, включающая строки пользовательского агента. Не могли бы вы привести пример, который позволит получить доступ к файлам sitemap-index.xml и * .gz в веб-папке, если запрос отправлен с google.com? – morpheous

+0

@Morpheous, трюк - найти сети - google crawls from googlebot.com, и кто знает, достаточно ли они достаточно, чтобы придерживаться одиночных сетевых блоков или использовать десятки netblocks. Я бы предложил просмотреть ваши журналы и выяснить, какие из них вы хотите разрешить, и которые вы хотите отрицать. – sarnold

0

Вы можете проверить заголовок пользовательского агента, который отправляет клиент, и только передать карту сайта известным поисковым роботам. Однако это не очень безопасно, так как заголовок пользовательского агента легко подделывается.

0

переполнение стека предположительно проверяет две вещи при определении того, кто получает доступ к Sitemaps:

  • USER_AGENT строка
  • Инициирующий IP адрес

и, вероятно, будет сопоставляться с базой данных известных законных ботов.

Строка USER_AGENT довольно легко проверить на языке сервера; это также очень легко подделать. Более подробную информацию:

Смежные вопросы