이전 목록 다음
채택완료

서브도메인 www 고정연결 설정에서 예외 서브도메인 설정

www 없으면 자동으로 붙이고 잘못된 서브도메인으로 접근했을경우 www 고쳐 연결하는 설정을 htaccess 로 적용을 했었습니다.

m.도메인.com 이나 login.도메인.com같은 예외로 적용하고 싶은 서브도메인들이 생겨서

php 방식으로 바꾸어보았지만 if문을 어떻게 적용해야할지 모르겠네요.

 

기존 htaccess 소스

Copy
RewriteCond %{HTTP_HOST} !^www\.domain\.co.kr$ [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^(.*)$ http://www\.domain\.co.kr/$1 [L,R]

 

www 붙이는 php 방식1

Copy
if(!stristr($_SERVER['HTTP_HOST'],"www.")) header("location: http://www.domain.co.kr".$REQUEST_URI); exit;

 

www 붙이는 php 방식2

Copy
if (!preg_match('/www/', $_SERVER['HTTP_HOST']) == true) {
header("location: http://www.domain.co.kr".$REQUEST_URI);
}

 

이런 소스들중에서 m, login, member 같은 지정 서브도메인에서는 www로 고치기를 제외하고싶습니다.

if문 사용하고싶어서 php방식으로 바꾸고싶습니다만 그래도 htaccess 방식도 알아두고싶습니다.

감사합니다!

 

...

 

...

 

...

 

...

 

...

 

...

답변 1개 / 댓글 2개

채택된 답변
+20 포인트

테스트/확인은 해보지 못했습니다.

 

* php

Copy
$arr_allowed = array("domain", "m", "login", "member");
$first_part = array_shift((explode('.', $_SERVER['HTTP_HOST'])));
if (!in_array($first_part, $arr_allowed))
    header("location: http://www.domain.co.kr".$REQUEST_URI); 
exit;

 

* .htaccess 

Copy
RewriteCond %{HTTP_HOST} !^(www|m|login|member)\.domain\.co.kr$ [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^(.*)$ http://www\.domain\.co.kr/$1 [L,R]

답변에 대한 댓글 2개

htaccess는 잘되는데 php는 페이지 새로고침이 잘못되었다고 나오네요ㅠㅠ
그래도 htaccess는 되니 임시로 써야겠습니다. 감사합니다!
www 붙이는 php 방식1은 어느 파일에 넣는건지요?

답변을 작성하려면 로그인이 필요합니다.

🐛 버그신고