Как написать правило htaccess для данного поддомена? - Избегание индексации некоторых файлов

В моем файле .htaccess есть следующее:

Options +FollowSymlinks
#+FollowSymLinks must be enabled for any rules to work, this is a security 
#requirement of the rewrite engine. Normally it's enabled in the root and we 
#shouldn't have to add it, but it doesn't hurt to do so.

RewriteEngine on
#Apache scans all incoming URL requests, checks for matches in our #.htaccess file 
#and rewrites those matching URLs to whatever we specify.

#allow blank referrers.
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?site.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?site.dev [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?dev.site.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L]

# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d


# otherwise forward it to index.php
RewriteRule . index.php

site.com - это производственный сайт.

site.dev - это среда разработки localhost.

dev.site.com - это поддомен, на котором мы тестируем вживую.

Я знаю, что это позволит избежать индексации сайта:

Header set X-Robots-Tag "noindex, nofollow"

cf. http://yoast.com/prevent-site-being-indexed/

Однако мой вопрос, возможно, довольно прост:

Есть ли способ применить эту строку ТОЛЬКО на dev.site.com, чтобы она не индексировалась?


person MEM    schedule 17.10.2012    source источник


Ответы (1)


Есть ли способ применить эту строку ТОЛЬКО на dev.site.com, чтобы она не индексировалась?

Да, нужно поставить строку Header в конфиг vhost для dev.site.com. Невозможно выполнить проверку хоста, привязанную к директиве Header set, из файла htaccess.

Другой вариант: если вы хотите заблокировать ботов через useragent, вы можете удалить Header set и добавить несколько правил:

# request is for http://dev.site.com
RewriteCond %{HTTP_HOST} ^dev.site.com$ [NC]
# user-agent is a search engine bot
RewriteCond %{HTTP_USER_AGENT} (Googlebot|yahoo|msnbot) [NC]
# return forbidden
RewriteRule ^ - [L,F]

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

person Jon Lin    schedule 17.10.2012
comment
В предоставленной ссылке они говорят, что ваш сайт работает на Apache и включен mod_headers (обычно это так), вы можете добавить следующую одну строку в свой файл .htaccess - я попробую, возможно, второй вариант, так как я могу ' t получить доступ к файлу vhost на общем хосте env. - person MEM; 18.10.2012
comment
Я добавил ваш последний код, проблем с htaccess нет. Хороший. Я все еще вижу, что разработчик появляется при поиске в Google. Может, это будет вопросом времени? - person MEM; 18.10.2012
comment
@MEM Не знаете, как вы удаляете проиндексированные страницы из базы данных Google, вам придется связаться с ними по этому поводу. Но я предполагаю, что в конечном итоге они будут удалены просто потому, что их кешированные версии ваших страниц устарели. - person Jon Lin; 18.10.2012