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]

관련자료

댓글 0
등록된 댓글이 없습니다.
Today's proverb
다른 누군가의 길을 밝혀 주기 위해 등불을 켜면 결국 자신의 길도 밝히는 것이 된다. (벤 스위트랜드)