URL이 항상 www로 시작되도록하려면 어떻게해야합니까?


17

사용자가 www.mydomain.com별칭을 통해 도착하더라도 사용자가 방문하도록하고 싶습니다 mydomain.com. 이것은 하위 도메인의 쿠키를 제어 할 수 있도록하기 위해, Google은 하나의 단일 도메인을보고 URL을 통제하지 않습니다.

아파치로 어떻게 할 수 있습니까?


5
대신 이것을 역으로 제안하고 대신 mydomain.com을 시행하겠습니까? 'www'접두사는 중복되며 완전히 불필요합니다.
Eevee

쿠키는 mydomain.com의 모든 하위 도메인으로 전송되는 반면 www.mydomain.com을 통해 어떤 쿠키가로드되는지 직접 결정할 수 있습니다. 예를 들어 쿠키가 static.mydomain.com에 추가되지 않도록 쿠키를 차단할 수 있습니다. 로드 된 모든 이미지에 대해 전송되는 것은 아닙니다. 반드시 불필요한 것은 아닙니다.
Magnar

Google에 단일 연결 스타일을 사용하도록 구체적으로 지시 할 수 있습니다. 아래 답변을 참조하십시오.
Robinicks

담당자는 없지만 이러한 태그를 추가하면 도움이 될 것입니다. redirect redirectmatch mod_alias
Tom

1
이것이 훨씬 늦더라도 여전히 관련이 있습니다. 하위 도메인이없는 도메인에는 몇 가지 단점이 있으므로 www는 더 이상 사용 되지 않습니다. www를 사용하는 몇 가지 이유는 yes-www.org/why-use-www 를 참조하십시오 .
user50849

답변:


17
<VirtualHost ip:80>
   ServerName domain.com
   RedirectMatch permanent ^(.*)$ http://www.domain.com$1
</VirtualHost>

<VirtualHost ip:80>
   ServerName www.domain.com

   ... usual config
</VirtualHost>

7
약간 더 간단한 해결책을 위해, "Redirect permanent / ptth : //www.domain.com/"을하면 아파치가 자동으로 접미사를 보존합니다. (필자는 자동 링크를 해제하는 HTTP를 반전.)
그렉 Hewgill

1
정말 ? 나는 그것을 몰랐다. 나는 항상 URI의 후행 부분을 보존하기 위해 RedirectMatch를 사용해야한다고 생각했습니다.
Dave Cheney

4

이것을 httpd.conf파일에 추가 하십시오 :

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\.mydomain\.com$ [NC]
RewriteRule ^(.*)$ http://www.mydomain.com/$1 [R=301,L]

4

mod_rewrite 지원을 활성화 한 다음 루트 폴더에 다음 내용으로 .htaccess 파일을 작성하십시오.

<IfModule mod_rewrite.c>
   Options +FollowSymLinks
   Options +Indexes
   RewriteEngine On
   RewriteBase /
   RewriteCond %{HTTP_HOST} ^domain\.com$
   RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]
</IfModule>

RewriteCond 테스트를 대소 문자를 구분하지 않도록하는 것을 잊지 마십시오 ...
Alnitak

어떤 이유로 든 아파치 구성 파일을 변경할 수있는 권한이없는 경우에만이 작업을 수행하십시오. .htaccess파일은 오버 헤드가 많으며 파일을 다시 쓰면 훨씬 더 나빠집니다.
John Dalton

이 작업에 대해 mod_rewrite를 사용하는 것보다 항상 Redirect를 사용하는 것이 좋습니다.
David Pashley 2016 년

3

Google이 www의 유무에 관계없이 특정 도메인 스타일을 사용하도록하려면 무료 Google 웹 마스터 도구 계정 을 만들고 도메인의 소유권을 확인하고 (파일 업로드) 온라인 제어판을 사용 하여 원하는 도메인 을 설정하십시오 .

그것은 간단하고 서버 측 코드를 변경할 필요가 없으며 www 가 있거나없는 인바운드 링크 는 페이지의 PageRank를 증가시키는 것과 동일하게 취급됩니다.

링크는 www 버전과 www가 아닌 ​​버전의 URL (예 : http://www.example.comhttp://example.com ) 을 모두 사용하여 사이트를 가리킬 수 있습니다 . 선호 도메인은 검색 결과 에서 사이트에 사용하려는 버전입니다 .

선호하는 도메인 이름을 알려 주면 URL을 표시 할 때 선호 사항을 고려합니다. 이 변경 사항이 Google 색인에 완전히 반영되기까지 다소 시간이 걸릴 수 있습니다.

당신이 경우 하지 않습니다 선호 도메인을 지정, 우리는 별도의 페이지에 별도의 참조로 도메인의 WWW와 www가 아닌 버전을 처리 할 수 있습니다.


1

나는 반대로 domain.com에서 직접 봉사하고 싶을 때 사람들이 www.domain.com에가는 반대의 문제가있었습니다.

<VirtualHost *:80>
   ServerName domain.com

   ... usual config
</VirtualHost>

<VirtualHost *:80>
   ServerName www.domain.com
   ServerAlias sub.domain.com # can also catch some other subdomains
   ServerAlias *.domain.com # or all previously unmatched domains

   Redirect permanent / http://domain.com/
</VirtualHost>

Greg Hewgill이 언급했듯이 Redirect를 사용하는 것이 RedirectMatch보다 약간 간단하며 동일한 작업을 수행합니다 . 자세한 내용 은 http://httpd.apache.org/docs/2.0/mod/mod_alias.html#redirect 를 참조하십시오.

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