我一直试图围绕这个概念,以及如何正确地理解它,但我只是很难做到这一点。
我接受了我的应用的所有域名和子域名,但问题出在此处:
示例:
john.myapp.com/foo
它应该路由到foo
控制器中的user
函数,而不是调用名为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
答案 0 :(得分:6)
Codeigniter不支持涉及域的路由作为其默认功能的一部分。
如果你访问过www.example.com/controller/method
,路由器只解释/controller/method
部分而忽略之前的任何内容。
这意味着要实现您尝试使用.htaccess将子域路由到应用程序所需的内容。
RewriteCond %{HTTP_HOST} ^((?!www\.)(?!myapp\.com)[^\.]+)\.
RewriteRule ^(.*)$ /index.php?/user/%1/$1 [L]
这会发送所有请求,例如
subdomain.example.com/controller/method
转到example.com/index.php/user/controller/method
这将允许您使用标准路由功能进行路由,具体取决于子域。