동일한 사이트에서 http 및 https에 대해 다른 robots.txt를 제공하는 방법은 무엇입니까?


11

Apache에서 제공하는 작은 사이트가 있습니다 (Nginx를 앞에 놓거나 Apache로 변경할 수 없음) .http 및 https 모두에서 동일한 사이트를 제공하도록 설정되어 있습니다 (https-> https 리디렉션 없음) 지금까지 http와 https 버전이 동시에 제공됩니다).

.htaccess다른 텍스트 파일을 제공하기 위해 http와 https를 통해 동일한 URI를 설정해야 합니까?

http://example.com/proto.txt하면서 "이 사이트는 HTTP를 통해입니다"라고 https://example.com/proto.txt"이 사이트는 HTTPS를 통해 제공"말할 것입니다.


이것을 작성하는 정확한 방법을 확인할 시간이 없으므로 (아답이 아닌 주석 만), 기본 Apache 구성을 원하지 않거나 변경할 수없는 경우 다른 옵션을 사용하는 것입니다 RewriteRule.htaccess그것에 조건은 HTTPS를 통해 제공되는과.
jcaron

@ dcaron, 이것은 정확히 내가 필요한 것입니다. 정확히 그렇게하는 법을 알 수 없으며 조언이나 더 나은 코드 스 니펫이 필요합니다. :)
Kevin M

귀하의 http 및 https 사이트가 서로 다릅니다 <VirtualHost>. 따라서 그중 하나에 다른 robots.txt를 구성하기 만하면됩니다. 주위 :RewriteRule ^/robots.txt$ /path/to/alternative/robots.txt [L]
피터-복원 모니카

답변:


19

별명 사용

robots.txt 및 robots_http.txt라는 두 파일을 작성하여 http VirtualHost에 추가하십시오.

Alias "/robots.txt" "/path/to/documentroot/robots_http.txt"

가상 호스트 설정을 수정할 수없고 .htaccess 만 편집 할 수 있습니다. 이것은 속임수입니다.
Kevin M

2

"main"Apache 설정을 변경할 수 없거나 변경할 수 없지만 .htaccess파일 에서 변경해야하는 경우 a RewriteRule를 사용하여 RewriteCondHTTPS를 확인할 수 있습니다 .

다음과 같은 내용이 있습니다.

RewriteEngine On

RewriteCond %{HTTPS} "on"
RewriteRule robots.txt robots_https.txt [L]

아마 작동해야합니다 (테스트하지 않았습니다).

이것은 HTTPS 종료 자체를 수행하는 Apache를 기반으로합니다. HTTPS 종료가 역방향 프록시에서 수행 된 경우 조건이 다를 수 있습니다 (역 프록시 및 Apache의 구성에 따라 다름).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.