서브도메인 값을 switch문으로 나누는 중 질문드립니다
본문
안녕하세요 더위가 한결 달아난 시원한 저녁입니다~
현재 구하고자 하는 것은 서브도메인 값을 구하여 그 값에 따라 switch문으로 구별하고 있습니다.
예를 들어
aaaaa.도메인.com 인 경우에는 도메인.com/1.php 로 이동
bbb.도메인.com 인 경우에는 도메인.com/2.php 로 이동
cccc.도메인.com 인 경우에는 도메인.com/3.php 로 이동
이런 식입니다.
<?
$subdomain="";
switch ($subdomain) {
case "aaaaaa":
goto_url(G5_URL.'/1.php');
break;
case "bbb" :
goto_url(G5_URL.'/2.php');
break;
case "cccc" :
goto_url(G5_URL.'/3.php');
break;
default :
goto_url(G5_URL');
}
?>
이렇게 작성하면 각각의 서브도메인별로 이동할 것 같습니다.
하지만 여기서 서브도메인 값을 구하는 것이 어렵네요.
$temp_subdomain = $_SERVER['REQUEST_URI'];
$temp_subdomain = substr($temp_subdomain,-4.20);
이런 식으로 $_SERVER['REQUEST_URI'] 값에서 뒤에서 짤라 사용하려고 했는데
서브도메인의 길이도 제각각이고 한글 도메인이다보니 뒤에서 짜르는 것도 좀 불안하네요.
게다가 이걸 정규식으로 표현해야 제대로된 코드가 나올 것 같습니다.
서브도메인 값을 제대로 구할 수 있는 방법을 알고 계시는 고수님의 도움 부탁드립니다.
참 도메인이 한글이다보니 서브도메인도 한글로 만드는 경우가 있습니다.
감사합니다.
!-->!-->
답변 2
도메인은 $_SERVER['REQUEST_URI'] 가 아니죠
한글이든 아니든 아래처럼 해보세요
$tmp = explode(".", $_SERVER['HTTP_HOST'];);
$subdomain = $tmp[0];
정규식은 항상 생각을 많이 하게 되어서 그냥 바로 떠오르는 방식을 적업봅니다. 너무 무식한 방법이 될수도 있을것 같기는 한데요.
http://나 https:// 그리고 본도메인은 replace로 변경후에 남은 스트링이 있는지 체크해도 될것 같구요.
explode를 이용해서 본도메인과 일치하는 도메인 제외한후 남은 배열에 값이 있는지 체크하면 될것 같습니다.