답변:
robots.txt
사이트에 액세스 한 하위 도메인을 기반으로 다른 파일을 제공 할 수 있습니다. Apache에서이를 수행하는 한 가지 방법은 .htaccess에서 mod_rewrite를 사용하여 URL을 내부적으로 다시 작성하는 것입니다. 다음과 같은 것 :
RewriteEngine On
RewriteCond %{HTTP_HOST} !^(www\.)?example\.com$ [NC]
RewriteRule ^robots\.txt$ robots-disallow.txt [L]
위의 내용 robots.txt
은 호스트가 www.example.com
또는 이외의 다른 위치에 대한 모든 요청에 대해 요청을 example.com
내부적으로 다시 쓴다는 것을 나타 robots-disallow.txt
냅니다. 그리고 지시문 robots-disallow.txt
을 포함합니다 Disallow: /
.
.htaccess 파일에 다른 지시문이있는 경우 라우팅 지시문보다이 지시문이 최상위에 가까워 야합니다.
sub.example.com/robots.txt
하므로 하위 도메인에 따라 다른 응답을 제공하기 위해 무언가 를 수행 해야합니다 . mod_rewrite를 사용할 필요는 없지만 여러 번 사용한 기술입니다. 경우 robots.txt
동적으로 생성됩니다 당신은 서버 측 코드 (예. PHP)에서 응답을 변경할 수 있습니다.
robots.txt
를 전송하여 X-Robots-Tag: noindex
(.htaccess에서도 수행 할 수 있음) 크롤링이 아닌 인덱싱을 방지하는 것 입니다. 크롤링을 방지하는 것이 바람직하다고 생각합니다. (?)
robots.txt
루트에있는 경우에만 작동합니다.
robots.txt
에서 액세스 할 수있는 각 하위 도메인 웹 사이트마다 별도로 업로드해야합니다 http://subdomain.example.com/robots.txt
.
에 아래 코드를 추가하십시오 robots.txt
User-agent: *
Disallow: /
또 다른 방법은 <META>
모든 페이지에 로봇 태그를 삽입하는 것 입니다.
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
/robots.txt
하고 추가 Disallow: /
하지만 공유 코드 기반으로 인해 /robots.txt
모든 (하위) 도메인에 영향을 미치지 않으면 수정할 수 없습니다 "라고 말합니다.
html 페이지에서 메타 태그를 제거하고 하위 도메인에 따라 동적으로 빌드합니다. 예를 들어 하위 도메인 개발을 사용합니다. 개발을 위해. 따라서 pageload 이벤트에는 다음이 있습니다.
' Check if domain is DEV or PROD and set robots accordingly meta tag in head
Dim metatag As HtmlMeta = New HtmlMeta
metatag.Attributes.Add("name", "robots")
If CurrentURL.Contains("dev.advertise-it") Then
metatag.Attributes.Add("content", "NOINDEX, NOFOLLOW")
Else
metatag.Attributes.Add("content", "INDEX, FOLLOW")
End If
Page.Header.Controls.Add(metatag)