2016-07-15 2 views
0

내가 검색 엔진에 내 도메인이있는 이상한 문제가 끝나는 잘못된 도메인과 https를 방지하기 위해 : 나는 여러 도메인을 소유하고한다 RewriteCond가

을의 말을하자

example.com 
example.net 
example.org 

모든 도메인이 그것은 누구나 잘 작동하고

RewriteCond %{HTTP_HOST} !^example\.com$ 
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L] 

: 나는 doublicated 내용을 방지하기 위해 httpd.conf 파일의 상단에 리디렉션을 추가 왜 내 서버를 가리키는, 그건. 나는 .COM 도메인에 대한 SSL 인증서를 가지고 있기 때문에

, 나는 HTTPS 버전으로 모든 사용자를 리디렉션하고있다 :

RewriteCond %{HTTPS} off 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} 

작업도 잘 누구나. 이제

이상한 문제 : 어떤 이유로, 때로는 엔진 https://example.net/apage.php을 나열되고 검색을 나는 .NET에 대한 더 SSL 인증서 없어 (그리고 .org와) 방문자가 검색 결과를 clickling 때, 도메인을하기 때문에 엔진을 사용하면 웹 사이트에 대한 연결이 안전하지 않다는 경고 메시지가 브라우저에 표시됩니다. 이것은 매우 혼란스럽고 브라우저 경고가 나타나기 전에 방문자를 올바른 .com 도메인으로 리디렉션 할 수있는 방법을 찾지 못했습니다.

mod_rewrite 조건 또는이 문제를 해결하기 위해이 문제를 해결할 생각이 있습니까?

답변

0

mod_rewrite는 브라우저에 리다이렉트를 보내어 서버에 먼저 도달해야합니다. 그 전에 브라우저에서 경고가 나타납니다.

아마도 다중 도메인 SSL 인증서를 구입할 수 있습니다.

그렇지 않은 경우 합법적 인 검색 봇이 .net 및 .org 버전의 사이트를 크롤링하지 못하게 할 수 있습니다. 어쩌면 사람이 여기에 설명 된 것처럼, 단지 이러한 도메인에 대한 robots.txt 파일을 포함하여 : Stop Google from indexing

+0

내가 이해하지 못하는 이유는 https 요청 여부와 상관없이 도메인 종료가 .com이 아닌 경우 이미 리디렉션되지 않는 이유입니다. – lickmycode

0

재 작성의이 세트는 클라이언트가 HTTPS에서 같은 URL로 사용했다 URI를 사용하고있다 어떤 호스트 리디렉션 :

따라서 http://example.net/something을 요청하면 누구나 https://example.net/something이됩니다. 당신의 다른 모든 재 작성 세트가 꼭 필요한 것이라면.

그런 간단한 리다이렉션에 mod_rewrite를 사용하면 불필요하게 복잡한 작업을 수행하고 비 SSL 가상 호스트에서 HTTPS가 꺼져 있는지 확인하는 것이 중복됩니다.

HTTPS 만에 example.com으로 끝낼로 리디렉션의 올바른 방법은 :

NamedVirtualHost *:80 <-- use this for more vh's present and if this is 2.2.x 
<VirtualHost *:80> 
ServerName example.net 
ServerAlias example.org 
Redirect/https://example.com/ 
</VirtualHost> 
  • example.com 콘텐츠가있는 경우 포트 80에 대한 당신은 당신이 또 다른 가상 호스트 항목을 추가 제공 할 그렇지 않으면 이전 가상 호스트에서 example.com에 대해 다른 ServerAlias를 추가하기 만하면됩니다.그런 다음

:

<VirtualHost *:443> 
ServerName example.com 
#.....other directives here 
</VirtualHost> 

HTTPS로 요구되는 example.com 이외의 호스트 이름을 걸릴 것 만들어 더 가능한 실수가없는이 방법.

필요하지 않은 복잡한 뒤섞기가 필요하지 않습니다.