서브도메인 값을 switch문으로 나누는 중 질문드립니다

서브도메인 값을 switch문으로 나누는 중 질문드립니다

QA

서브도메인 값을 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];

 

네 안그래도 실수했는데 답변이 달리면 수정이 안되더라구요.
전 SERVER_NAME으로 explode처리해서 해보았는데 잘 되더라구요.
문제는 서브도메인 없이 도메인.com인 경우였는데
이역시 switch문에 case "도메인": 을 넣어서 해결했습니다.
큰 도움 주셔서 감사합니다~

정규식은 항상 생각을 많이 하게 되어서 그냥 바로 떠오르는 방식을 적업봅니다. 너무 무식한 방법이 될수도 있을것 같기는 한데요.

http://나 https:// 그리고 본도메인은 replace로 변경후에 남은 스트링이 있는지 체크해도 될것 같구요.

explode를 이용해서 본도메인과 일치하는 도메인 제외한후 남은 배열에 값이 있는지 체크하면 될것 같습니다. 

 

답변을 작성하시기 전에 로그인 해주세요.
전체 98
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT