[英]Wildcard subdomains routing with 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
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
這將允許您使用標准路由功能根據子域進行路由。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.