Поддомены подстановочных знаков для одного приложения codeigniter - PullRequest
6 голосов
/ 06 мая 2011

В основном я пытаюсь создать приложение с кодовым указателем с поддоменами локализации, чтобы при доступе к:

ca.site.com -> оно работало бы в той же системе, но отображало канадский контент.us.site.com -> по-прежнему работает на той же системе, но показывает американский контент.

плюс, если я захожу на www.site.com, он автоматически получит правильную локализацию с помощью ip2country и будет перенаправлен, как если бы из Великобритании, перенаправьте на uk.site.com

будет только 1 системная папка и 1 папка приложения:

root / system / application index.php

теперь я хочуURL-адреса, чтобы оставаться на месте от какой бы локализации они ни находились.например:

uk.site.com / profile / 1 получит доступ к контроллеру профиля ca.site.com/profile/3 также получит доступ к тому же контроллеру, который использует uk.site.com

howсмогу ли я реализовать это?

извините, если мой запрос немного грубоват.но я надеюсь, что кто-то может мне помочь.

Ответы [ 2 ]

2 голосов
/ 06 мая 2011

Вероятно, есть много способов сделать это ... но один из них, который я могу придумать, - поместить что-то в файл index.php, где установлены предварительно загруженные пользовательские значения конфигурации, что-то делаеткак это ...

/*
 * -------------------------------------------------------------------
 *  CUSTOM CONFIG VALUES
 * -------------------------------------------------------------------
 *
 * The $assign_to_config array below will be passed dynamically to the
 * config class when initialized. This allows you to set custom config
 * items or override any default config values found in the config.php file.
 * This can be handy as it permits you to share one application between
 * multiple front controller files, with each file containing different
 * config values.
 *
 * Un-comment the $assign_to_config array below to use this feature
 *
 */
    $region_prefix_var = explode('.', $_SERVER['HTTP_HOST']);
    $assign_to_config['region_prefix'] = $region_prefix_var[0];

и затем в вашем файле config.php

global $region_prefix_var;
$config['base_url'] = $region_prefix_var[0].".site.com/";

... или вы можете просто переопределить base_url в файле index.php в $Массив assign_to_config, основанный на значении $ _SERVER ['HTTP_HOST'].Затем в любых других контроллерах или в тех вещах, которые вы можете использовать на основе

$this->config->item('region_prefix');

И затем просто укажите все субдомены в одном каталоге и локализуйте их в своем приложении.

0 голосов
/ 06 мая 2011

Вы должны найти способ разрешить динамические перенаправления поддоменов (очевидно, это возможно с небольшим волшебством .htaccess mod_rewrite), затем создать главный контроллер, с первым параметром в методе index, являющимся языком, и затем иметьпереадресация поддоменов идет от (.*).site.com/(.*) = site.com/$1/$2, это должно работать, но оно не следует традиционному MVC-подходу CodeIgniter и является скорее взломом, чем правильным способом, я уверен, что кто-то другой знает большеСемантический способ работы.

Если я правильно помню, перенаправления поддоменов описаны где-то на apache.org, и вы найдете больше информации, чем я предоставил на google

...