여기서 무엇을 추가 혹은 변경해야할까요? 채택완료
망고씌
7년 전
조회 4,281
</p>
<p>RewriteCond %{HTTP_HOST} !^(www|m|login|member|app)\.domain\.co.kr$ [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^(.*)$ <a href="http://www\.domain\.co.kr/$1" target="_blank" rel="noopener noreferrer">http://www\.domain\.co.kr/$1</a> [L,R]</p>
<p>
htaccess에서 지정한 서브도메인이 아니라면 www.domain.co.kr 로 바꾸는 것을
아래 php에서 작동하도록 작성했는데요
</p>
<p>$arr_allowed = array("www", "m", "login", "member", "app");
if (preg_match('/^([^.]+)\.domain\.co\.kr$/', $_SERVER['HTTP_HOST'], $match)){
if (!in_array($match[1], $arr_allowed)){
header("location: <a href="http://www.domain.co.kr".$REQUEST_URI);" target="_blank" rel="noopener noreferrer">http://www.domain.co.kr".$REQUEST_URI);</a>
exit;
}
}</p>
<p>
이게 문제가 .domian.co.kr 앞의 서브도메인이 없으면 그냥 패스(?)해버립니다.
앞에 1.domain.co.kr처럼 무언가가 있으면 www로 잘 넘어가는데 domain.co.kr이면 그냥 domain.co.kr이 되버립니다.
어떻게 손봐야하나요?
...
댓글을 작성하려면 로그인이 필요합니다.
답변 2개
7년 전
흠 자답이네요
</p>
<p>$sub_tmp = explode('.domain.com', $_SERVER['HTTP_HOST']);
$sub_domain = current($sub_tmp);
$arr_allowed = array("www", "member", "app");
if (!in_array($sub_domain, $arr_allowed)){
header("location: //www.domain.com".$REQUEST_URI);
exit;
}</p>
<p>
explode 로 주소를 잘라서 비교했습니다.
이렇게한이유는 질문글의 코드는 2차 서브도메인 (www1.www2.domain.com)의 경우 Array라는 값을 출력하기때문입니다.
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
7년 전
</p>
<p>$arr_allowed = array("www", "m", "login", "member", "app");</p>
<p>if (preg_match('/^([^.]+)\.domain\.co\.kr$/', $_SERVER['HTTP_HOST'], $match)){ </p>
<p> if (!in_array($match[1], $arr_allowed) || !$match[1]){ </p>
<p> header("location: <a href="http://www.domain.co.kr".$REQUEST_URI);" target="_blank" rel="noopener noreferrer">http://www.domain.co.kr".$REQUEST_URI);</a> </p>
<p> exit; </p>
<p> }</p>
<p>}</p>
<p>
로그인 후 평가할 수 있습니다
답변에 대한 댓글 1개
�
망고씌
7년 전
그래도 패스해버리네요 ㅠㅠ
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인