2014-01-08 2 views
0

처음에는 나에게 단순 해 보였지만 지금은 매우 어렵다는 것을 알고 있습니다. 어쩌면 나는 그것을 생각하고 끝났습니다. 당신의 도움을 사랑할 것입니다.PHP 하위 도메인을 IP 주소에 민감하게 검사하십시오.

개요 : 나는 (고객에 대한 고객 1 1) 두 개의 인터페이스와 웹 응용 프로그램이 있습니다. 모두 고객은 편도로 라우팅되며 모두 고객은 다른 라우트로 라우팅됩니다. 하위 도메인을 기반으로 표시 할 로그인 화면을 결정합니다. 내가 ENV에 문자열 조작을 수행하여 전에이 결정되었다 ("HTTP_HOST"고객에 [CLIENTNAME] .example.com을

문제를 이동 기본 도메인 (+ WWW)과 클라이언트를 얻을) - 아래 코드를 참조하십시오. 그러나 로컬 IP를 사용할 때 (다른 장치/사람과 테스트 할 때) 문제가 발생합니다. 내 코드는 '.'을 찾습니다. 호스트 환경은 0

를 IP를이 '로컬 호스트를'3 점을 가지고 있기 때문에 실패가에 ...이 내가 설립 한 다른 명명 된 매개 변수입니다 나는 경로를 할 방법을

CUSTOMER ----------------------------- CLIENT 
       xyz.example.com ------> 
     <------ www.example.com 
     <------ example.com 

       xyz.localhost ------> 
     <------ www.localhost 
     <------ localhost 

       xyz.192.168.X.X ------> 
     <------ www.192.168.X.X 
     <------ 192.168.X.X 

나는 정말 이것을 생각하고있을 수 있고 나를 위해 이것을 할 "get_subdomain()"과 같은 간단한 PHP 함수가 있기를 바라고 있습니다. 그러나 나는 그것을보고 있지 않으며 약간 도움을 정말로 사랑할 것입니다.

감사합니다.

현재 코드 :

$host = env("HTTP_HOST"); 
$group = null; 

// if there is exactly one dot IE example[dot]com then there is no subdomain 
if(substr_count($host,'.')==1){ 
    $group = 'customer' 
}else{ // there is a subdomain 
    $subdomain = substr($host, 0, strpos($host, ".")); 
    if($subdomain=='www'){ 
     $group = 'customer' 
    }else{ 
     $group = 'client' 
    } 
} 

CakePHP의 그 도움이된다면?

답변

0

이 답변이 특정 질문을 피하지 않는 것으로 보이지만 귀하의 질문에 대안을 초대하고있는 것으로 보입니다. 필자는 솔루션을 과도하게 생각하고 있다고 생각합니다. 특히 주로 테스트 환경에서 도움을주기위한 것입니다.

내가 제안하는 것은 IP 주소 대신 테스트를 위해 자신의 로컬 도메인을 정의한다는 것입니다. 예를 들어 호스트 파일 또는 동등 물에서 다음을 정의 할 수 있습니다.

xyzclient.mylocaldomain 192.168.1.1 [or whatever your local ip is] 
www.mylocaldomain  192.168.1.1 
xyz.localhost   192.168.1.1 
www.localhost   192.168.1.1 

그런 다음 로컬 또는 라이브 환경에 대해 다르게 코딩 할 필요가 없습니다. 경우에 따라 this guide 로컬 도메인을 설정하고 구성하는 것이 유용 할 수 있습니다.

+0

그게 내가하는 일 이었어.하지만 내가 알아 차린 모든 이유는 내가 웹 앱을 동반 할 모바일 앱을 개발하고 있기 때문이다. 이 모바일 앱은 LAN IP를 통해 내 로컬 컴퓨터와 통신해야합니다. 내가 아는 한 휴대 전화에는 편집 할 수있는 호스트 파일이 없습니다. 그래서 나는 그것을 cakephp 부트 스트랩 자체에 하드 코드하지 않으면 서브 도메인을 결정하는 더 좋은 방법이 필요합니다. – isick

+0

일부 타사 앱이 필요하지만 Android 휴대 전화에서 hosts 파일을 편집 할 수 있다고 생각합니다. 예를 들어이 토론은 다음과 같습니다. http://forum.xda-developers.com/showthread.php?t=514698 –

+0

감사합니다. – isick

관련 문제