TIP게시판

제목 항상 도메인에 www. 붙이거나 안붙이는 방법....
글쓴이 꾸숑 작성시각 2014/05/08 18:50:03
댓글 : 9 추천 : 0 스크랩 : 0 조회수 : 15973   RSS
아시는분 많겠지만 나름 저는 삽질 했던 내용이라서 삽질 예방 차원에서 올려 봅니다.

스마트 에디터의 이미지 삽입 기능이  www 붙을때와 안붙을때 작동되고 안되고 해서... 작업 했습니다.

서브도메인은 연구 하셔야 할것 같네요! (예: help.domain.com → www.help.domain.com)

index.php 상단에 아래 소스 붙여 넣으면 됩니다.

// www.로 접속하지 않는 경우 자동 www. 붙임
if ( substr($_SERVER['HTTP_HOST'],0,4)!='www.' ) {
 $url = (isset($_SERVER['HTTPS'])?'https://':'http://').'www.'.$_SERVER['HTTP_HOST'].($_SERVER['SERVER_PORT']=='80'?'':':'.$_SERVER['SERVER_PORT']).$_SERVER['REQUEST_URI'];
 if ( !headers_sent() ) header('Location: '.$url);
 else echo "";
 exit;
}


// www.로 접속하는 경우 자동으로 www. 제거함
 if ( substr($_SERVER['HTTP_HOST'],0,4)=='www.' ) {
  $url = (isset($_SERVER['HTTPS'])?'https://':'http://').substr($_SERVER['HTTP_HOST'],4).($_SERVER['SERVER_PORT']=='80'?'':':'.$_SERVER['SERVER_PORT']).$_SERVER['REQUEST_URI'];
  if ( !headers_sent() ) header('Location: '.$url);
  else echo "";
  exit;
 }
 다음글 Mysql, Maria DB 관리툴 (3)
 이전글 php mongoDB extension이 있네요. (1)

댓글

한대승(불의회상) / 2014/05/09 11:00:39 / 추천 0
소중한 팁 감사 합니다.
들국화 / 2014/05/09 11:17:12 / 추천 0
CI에서 처리하는 것보다는 웹서버단에서 처리하는게 더 좋치 않을까요?

apache에서는 rewrite module을 쓰면 할수 있을것 같네요.
한대승(불의회상) / 2014/05/09 11:50:16 / 추천 0
들국화// 오.. 그런 방법도 있겠군요. 자료 조사를 해봐야 겠네요 ^^
들국화 / 2014/05/09 12:14:20 / 추천 0
한대승// 네.. 저는 모바일, pc 버전 구분 도메인도 rewrite 모듈에서 처리 합니다.

m. 붙느냐 아니냐에 따라 다르고 브라우져 agent를 판단해서 rewrite 시킵니다.
꾸숑 / 2014/05/10 15:44:58 / 추천 0
한대승//부끄럽습니다. 사실 저희 회사 개발팀장님의 소스를 차용했네요 ㅜㅠ
들국화//셈플 소스 올려 주시면 도움 많이 될것 같습니다.^^
kaido / 2014/05/15 12:05:14 / 추천 0
문뜩 들은 생각이.. 3차 도메인이 꼭 www 로만 표기 되는것도 아니며 80포트 전용이 아닌걸로 알고있습니다. [가상으로 잡을수도 있기에]
제가 가진 호스팅은 4차 도메인까지 사용합니다.

들국화님 의견대로 서버단에서의 처리가  스마트 합니다.

 
꾸숑 / 2014/05/16 13:53:50 / 추천 0
//kaido
좋은 의견 감사합니다.
역시 모두 저보다 몇 수 위시군요^^
/ 2014/07/03 10:18:52 / 추천 0
//꾸숑
yum으로 인스톨한 아파치 중 가상 호스트 설정입니다.
자세한 건 아래 링크 첨부합니다.
http://httpd.apache.org/docs/2.2/ko/misc/rewriteguide.html

<VirtualHost *:80>
    ServerName jeju.test.kr
    ServerAlias *.jeju.test.kr
    #Redirect permanent / http://jeju.test.kr
    <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteRule ^(.*)$ http://jeju.test.kr$1 [R,L]
    </IfModule>
</VirtualHost>
/ 2014/07/03 10:23:21 / 추천 0
위 소스는 모든 jeju.test.kr을 jeju.test.kr로 보내라 인데.. 
응용해서 *.test.com 을 www.test.com 으로 보내라로 바꾸면 되겠네요.