2012-01-13 3 views
4

나는이 개념에 대해 머리를 감싸려고 노력해 왔지만 올바른 경로를 지정하는 방법을 알고 있지만 그 일은 쉽지 않습니다. CodeIgniter로 와일드 카드 서브 도메인 라우팅

을 :

user 컨트롤러의 foo 함수 경로 대신 컨트롤러를 호출이라고
john.myapp.com/foo 

가 있어야 내가 여기에 내 응용 프로그램에 대한 모든 도메인 및 하위 도메인을 허용하지만,있어

이 문제입니다 foo.

그래서 :

john.myapp.com/foo -> myapp.com/user/foo 
john.myapp.com/foo/bar -> myapp.com/user/foo/bar 
someotherdomain.com/foo/bar -> myapp.com/user/foo/bar 
myapp.com/foo -> the controller: foo 

그러나이 라우팅은 하위 도메인과 다른 도메인,하지 myapp.com

답변

6

CodeIgniter는 그것의 한 부분으로 포함하는 도메인을 라우팅 지원하지 않는 기본 기능의 적용한다.

www.example.com/controller/method을 방문한 경우 라우터는 /controller/method 부분 만 해석하고 이전에는 아무 것도 무시합니다.

이렇게하면 .htaccess를 사용하여 하위 도메인을 응용 프로그램에 연결하는 데 필요한 것을 달성 할 수 있습니다.

RewriteCond %{HTTP_HOST} ^((?!www\.)(?!myapp\.com)[^\.]+)\. 
RewriteRule ^(.*)$ /index.php?/user/%1/$1 [L] 

이 표준 라우팅 기능을 사용하여 하위 도메인에 따라 노선을 수 example.com/index.php/user/controller/method

로 이동

subdomain.example.com/controller/method처럼 모든 요청을 보낼 것입니다.

+1

어떻게 동적으로 생성 된 user.example.com으로 라우팅 할 수 있습니까? – jayadevkv