서브도메인 값을 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를 이용해서 본도메인과 일치하는 도메인 제외한후 남은 배열에 값이 있는지 체크하면 될것 같습니다. 

 

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

회원로그인

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