Могу я поисковые роботы поиска блока для каждого сайта на веб-сервере Apache?

Простое многошаговое решение выглядит следующим образом:

Все пробельные символы, кроме символов новой строки, должны быть преобразованы в пробел (т. Е. \ F, \ r, \ t, \ v будут преобразованы в пробел)

output = Regex.Replace(input, "[\\f\\r\\t\\v ]+", " ");

Пробел входит в вышеуказанную группу.

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

output = Regex.Replace(output, " \n", "\n");
output = Regex.Replace(output, "\n ", "\n"); 

Приведенные выше два можно вместо этого изменить на использование String.Replace в стиле:

output = output.Replace(" \n", "\n");
output = output.Replace("\n ", "\n");

или даже на:

output = output.Replace(" \n", "\n").Replace("\n ", "\n");
[1114 ] Строка не может иметь два или более последовательных пробелов, кроме новых строк. Новые строки ограничиваются максимум двумя последовательными вхождениями (т. Е. \ N все в порядке, \ n \ n тоже хорошо, но \ n \ n \ n недопустимо и должно быть заменено на \ n \ n).

output = Regex.Replace(output, "\n\n\n+", "\n\n");

Как в стороне. Если система использует \r\n для последовательностей новой строки, то подавление символов \r может привести к нежелательным результатам.

18
задан Nick Messick 22 October 2008 в 07:51
поделиться

5 ответов

Чтобы действительно мешать страницам быть индексированными, необходимо будет скрыть сайты позади автор HTTP . Можно сделать это в глобальной конфигурации Apache и использовать простой .htpasswd файл.

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

2
ответ дан 21 October 2019 в 05:30
поделиться

Вы могли исказить robots.txt на подготовке virtualhosts к строгому robots.txt, размещенному в другом месте?

2
ответ дан 21 October 2019 в 05:30
поделиться

Попробуйте Используя Apache для остановки плохих роботов . Можно стать эти агенты пользователя онлайн или просто позволить браузеры, вместо того, чтобы пытаться заблокировать всех ботов.

0
ответ дан 21 October 2019 в 05:30
поделиться

В зависимости от Вашего сценария развертывания необходимо искать способы развернуть различные файлы robots.txt на dev/stage/test/prod (или безотносительно комбинации, которую Вы имеете). Принятие Вас имеет различные файлы конфигурации базы данных или (или независимо от того, что аналогично) на различных серверах, это должно следовать за подобным процессом (у Вас есть различные пароли для Ваших баз данных, правильно?)

, Если Вы не имеете в распоряжении процесс развертывания с одним шагом, это - вероятно, хорошая мотивация для получения той... существуют тонны инструментов там для различных сред - Capistrano является довольно хорошим, и одобренный в мире Rails/Django, но ни в коем случае не является единственным.

Сбой всего этого, Вы могли, вероятно, установить глобальную директиву Псевдонима в своей конфигурации Apache, которая будет относиться ко всему virtualhosts и указывать на строгий robots.txt

1
ответ дан 21 October 2019 в 05:30
поделиться

Для этого вы можете использовать Apache mod_rewrite. Предположим, что ваш реальный хост - www.example.com, а ваш промежуточный хост - staging.example.com. Создайте файл с именем 'robots-staging.txt' и условно перепишите запрос, чтобы перейти к нему.

Этот пример подходит для защиты одного промежуточного сайта, что является немного более простым вариантом использования, чем то, что вы просите, но у меня это сработало надежно:

<IfModule mod_rewrite.c>
  RewriteEngine on

  # Dissuade web spiders from crawling the staging site
  RewriteCond %{HTTP_HOST}  ^staging\.example\.com$
  RewriteRule ^robots.txt$ robots-staging.txt [L]
</IfModule>

Вы можете попытаться перенаправить пауков на главный файл robots.txt на другом сервере, но некоторые из пауков могут сопротивляться после того, как получат что-либо, кроме кода возврата «200 OK» или «404 not found» из HTTP-запроса, и могут не прочитать перенаправленный URL.

Вот как вы это сделаете:

<IfModule mod_rewrite.c>
  RewriteEngine on

  # Redirect web spiders to a robots.txt file elsewhere (possibly unreliable)
  RewriteRule ^robots.txt$ http://www.example.com/robots-staging.txt [R]
</IfModule>
4
ответ дан 21 October 2019 в 05:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: