Server & OS

www 자동으로 (아파치설정)

페이지 정보

본문

1) 아파치 설정
 
 
test.com 이라는 도메인을 주소창에 입력하였을때
자동으로 www.test.com 으로 접속 시키는 방법임.

<VirtualHost *:80>
ServerName test.com
ServerAlias www.test.com
DocumentRoot /home/test/public_html/
ErrorLog logs/error_log
CustomLog logs/sinvi-access_log combined env=!nosave
</VirtualHost>

이라는 가상 호스트 구문이 있을것이다.

www 를 자동으로 붙이는 방법은 간단하다.

위의 구문아래에 똑같은 구문을 복사하여 붙여 넣는다.

<VirtualHost *:80>
ServerName test.com
ServerAlias www.test.com
DocumentRoot /home/test/public_html/
ErrorLog logs/error_log
CustomLog logs/sinvi-access_log combined env=!nosave
</VirtualHost>

<VirtualHost *:80>
ServerName test.com
ServerAlias www.test.com
DocumentRoot /home/test/public_html/
ErrorLog logs/error_log
CustomLog logs/sinvi-access_log combined env=!nosave
</VirtualHost>

와 같이 될것이다. 이상태에서 아래와 같이 몇가지만 바꿔준다.

<VirtualHost *:80>
ServerName test.com
#ServerAlias www.test.com  <=== 주석처리
RedirectMatch /(.*)$ http://www.test.com/$1 <==== 삽입
DocumentRoot /home/test/public_html/
ErrorLog logs/error_log
CustomLog logs/sinvi-access_log combined env=!nosave
</VirtualHost>

<VirtualHost *:80>
ServerName www.test.com <=== www 사이트 명시
#ServerAlias www.test.com <=== 주석처리
DocumentRoot /home/test/public_html/
ErrorLog logs/error_log
CustomLog logs/sinvi-access_log combined env=!nosave
</VirtualHost>

설명을 하자면 같은 페이지를 보여주되 접속 도메인은 개별화 시킨 것이다.
다시 말해, test.com을 주소창에 입력하게 되면, 우선은 윗쪽 가상호스트 설정에 의해
접속하게 되고, RedirectMatch /(.*)$ http://www.test.com/$1 행에 의해 다시
두번째 가상호스트 설정인 www.test.com 으로 접속하게 되는것이다.

마지막의 $1의 역할은 test.com/xxxxx/xxxx/xxxx...등의 x로 표시된 모든 문자를
$1로 치환하여 www를 붙인 www.test.com 도메인 뒤에 다시 반환해주는 역할을 한다.
즉, test.com 도메인의 메인 페이지 뿐만 아니라, 하위의 모든 페이지에 www가 붙게 되는것이다
 
 
2) index 페이지 설정
 
사이트 접속시에 www 가 있고 없고에 따라서 좀 반응이 다르지요.
특히 게시판에서는 로그인이 풀리는 주범이기도 하구요...
(로그인풀림 방지 팁이 될수도....ㅋㅋ)
플래시를 이용한 멀티 업로드도 www 에 영향을 받아서 되기도 하고 안되기도 하고 그런답니다...
(즈리플님께서 알려주셨죠.)
아마도 www 가 있는 주소와 없는 주소를 서로 다른 도메인으로 처리하나봅니다... (자세한건 몰라요..ㅋㅋ)
그래서 index 와 각페이지에 호출되는 헤더화일에 다음과 같은 스크립트를 넣어주었습니다.
<script  language="JavaScript" type="text/javascript">
 var host = location.host.toLowerCase();
 var currentAddress = location.href;
 if (host.indexOf("www") == -1)
 {
  currentAddress = currentAddress.replace("//","//www.");
  location.href = currentAddress;
 }
</script>
이렇게 하면... 주소에 www 가 없을 경우  www 를 붙인주소로 다시 이동시켜주기때문에 항상 주소에 www 를 유지 할수 있습니다.
 
주의:
현재 주소에 원래 www 안넣는 페이지들...
예를 들어 user.abc.com 이런식으로 서브도메인을 사용중이시라면
서브도메인이 들어가는 페이지에는 사용하지 마세요!!! 
 
3) .htaccess 를 이용하는 방법

RewriteCond %{HTTP_HOST} !^www\.자신의도메인\.com$ [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^(.*)$ http://www\.자신의도메인\.com/$1 [L,R]

관련자료

등록된 댓글이 없습니다.
Today's proverb
행복해지고 싶다면, 잠시 동안만이라도 가슴에 손을 얹고 생각해 보라. 그러면 진정한 즐거움은, 발치에 돋아나는 잡초나 아침 햇살에 빛나는 꽃의 이술과 같이 우리 주변에 무수히 널려 있다는 것을 알 수 있을 것이다. 《하루 5분 생각이 인생을 결정한다 》 (이범준)