Маршрутизация поддоменов с использованием CodeIgniter - PullRequest
4 голосов
/ 13 января 2012

Я пытался обдумать эту концепцию и способы ее правильной маршрутизации, но мне просто трудно это делать.

Я принимаю все домены и субдомены в свое приложение, но вотпроблема:

Пример:

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

1 Ответ

6 голосов
/ 13 января 2012

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 и перейти к * 1013.*

Это позволит вам маршрутизировать в зависимости от субдомена, используя стандартные функции маршрутизации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...