2012-01-13 7 views
4

私はこのコンセプトの周りを頭で囲み、正しくルーティングする方法を模索してきましたが、これを行うのは苦労しています。CodeIgniterを使ったワイルドカードサブドメインのルーティング

私は私のアプリにすべてのドメインおよびサブドメインを受け入れるが、ここで問題ですよ:

例:

john.myapp.com/foo 

それが代わりに呼び出さコントローラを呼び出すuserコントローラで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

関連する問題