Codeigniter, домен для определенной области сайта - PullRequest
6 голосов
/ 02 октября 2010

Я не очень опытный программист и использую CodeIgniter во второй раз.

Предположим, у меня есть www.domain1.com.Так что у меня будет, скажем, 3 контроллера / area1, / area2, / area3.Пользователи могут получить к ним доступ как www.domain1.com/area1 и т. Д., Если я задаю базовый URL-адрес как www.domain1.com.Но моя проблема в том, что клиенту нужна определенная область сети, скажем, area2, работающая как микросайт, в своем собственном домене, поэтому он хочет получить доступ к area2 с помощью www.domain2.com.

Я нене знаю, как заставить это работать с CodeIgniter.Предположим, что он регистрирует www.domain2.com и устанавливает его, указывая на тот же DNS, сервер и т. Д. Как я могу заставить CodeIgnitor выполнять контроллер area2 при обращении к URL www.domain2.com?

Возможно, изменение $config['base-url']?Маршрутизация?.htaccess?Пожалуйста, если вы решили эту проблему, примеры кода были бы очень благодарны.

Редактировать: Я приведу пример сайта, который я хочу получить.

У меня есть одна нормальная установка CodeIgniter(внешний хост, я не могу получить доступ к httpd.conf). Он находится на одной машине, и к корню сайта должен обращаться www.domain1.com

Все домены зарегистрированы за пределами.Итак, у меня есть домашний контроллер, который показывает мне вид главной страницы.И предположим, что у сайта есть 3 области / area1, / area2 / area3 с соответствующими контроллерами, показывающими эти области.

Мой клиент хочет выделить одну из областей, ту, которую показывает контроллер / area2, и он хочет использовать другой домен для этой области, www.domain2.com

Что я могу сделатьтак что, когда пользователь переходит на www.domain2.com, CI перенаправляет их на www.domain1.com/area2?Могу ли я, например, изменить $config['base_url'] в соответствии с полученным URL или это невозможно?Нужно ли изменять файл .htaccess?

Ответы [ 4 ]

7 голосов
/ 04 октября 2010

После долгих поисков я нашел решение, которое, кажется, работает, очень просто, если честно:

Изменить routes.php:

if ($_SERVER['HTTP_HOST']=="www.domain2.com") {
    $route['default_controller'] = "area2"; 
}

Нет необходимости переписывать мод

0 голосов
/ 03 октября 2010

первое решение, которое мне приходит в голову, - это использовать Apache mod_rewrite, но, насколько я знаю, это будет работать только для внутренних перенаправлений (т. Е. Ресурсов, находящихся на одном сервере / домене).

Как насчет использования iframe? Вы можете настроить домашнюю страницу domain2.com с полноразмерным фреймом, который получает его содержимое с domain1.com/area2.

0 голосов
/ 03 октября 2010

вам определенно нужно пройти путь mod_rewrite

0 голосов
/ 03 октября 2010

Вот полезная ссылка .... http://www.askaboutphp.com/88/codeigniter-setting-up-multiple-sites-on-one-install.html На самом деле сам никогда этого не делал, но, похоже, это можно сделать без двух установок ci.Удачи.

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