我一直试图围绕这个概念,以及如何正确地解决它,但我只是很难做到这一点.
我接受了我的应用的所有域名和子域名,但问题是:
例:
john.myapp.com/foo
Run Code Online (Sandbox Code Playgroud)
它应该路由到控制器中的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
Run Code Online (Sandbox Code Playgroud)
但是,此路由应仅适用于子域和其他域,而不适用 myapp.com
Codeigniter不支持涉及域的路由作为其默认功能的一部分.
如果您访问www.example.com/controller/method
过路由器,则仅解释/controller/method
部件并忽略之前的任何内容.
这意味着要实现您尝试使用.htaccess将子域路由到应用程序所需的内容.
RewriteCond %{HTTP_HOST} ^((?!www\.)(?!myapp\.com)[^\.]+)\.
RewriteRule ^(.*)$ /index.php?/user/%1/$1 [L]
Run Code Online (Sandbox Code Playgroud)
这将发送所有请求,如
subdomain.example.com/controller/method
去 example.com/index.php/user/controller/method
这将允许您使用标准路由功能根据子域进行路由.
归档时间: |
|
查看次数: |
3138 次 |
最近记录: |