簡體   English   中英

通配符子域使用CodeIgniter進行路由

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM