Как сделать проект CodeIgniter переносимым с перенаправлениями - PullRequest
0 голосов
/ 03 июня 2010

Я хотел бы настроить свои проекты codeigniter, чтобы я мог использовать их в любой папке на своем веб-сервере. К сожалению, codeigniter требует от меня указать местоположение в нескольких переменных конфига. Это проблема для мобильности.

Есть 3 места, где я вижу это:

1) $config['base_url'] 
2) $config['base_path'] 
3) .htaccess RewriteRule

Пока что я нашел решение (1) здесь: http://codeigniter.com/wiki/Automatic_base_url/

Я ищу решения (2) и (3), но самое главное (3). Вот пример ситуации:

Я установил .htaccess, чтобы RewriteRule был следующим:

RewriteRule ^(.*)$ /folderA/index.php/$1 [L]

Затем я захожу в репо и проверяю проект в другой папке, чтобы внести отдельные изменения. Теперь я должен обновить .htaccess, чтобы показать следующее:

RewriteRule ^(.*)$ /folderB/index.php/$1 [L]

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

Ответы [ 3 ]

1 голос
/ 03 июня 2010

Поскольку кажется, что вы используете Apache, проще всего было бы настроить виртуальные хосты и использовать трюк с "автоматическим базовым URL", который вы нашли.Например, localhost.folderA может иметь корень документа C:\...\folderA, а localhost.folderB - иметь корень документа C:\...\folderB, например.

Из быстрого поиска в Интернете «Apache, как настроить виртуальные хосты», эта страница выглядит многообещающе для получения подробных инструкций по настройке виртуальных хостов Apache в Windows.Попробуйте следовать его инструкциям, заменив site1.local на localhost.folderA и site2.local на localhost.folderB.

0 голосов
/ 06 июля 2010

Для вашего базового пути вы можете иметь:

$config['base_path'] = $_SERVER['DOCUMENT_ROOT'];

Или

$config['base_path'] = dirname(FCPATH) . '/';

А для базового URL

$config['base_url'] = 'http://' . $_SERVER['SERVER_NAME'] . dirname($_SERVER["SCRIPT_NAME"]);

Edit:

$config['base_url'] =  dirname($_SERVER["SCRIPT_NAME"]);

Это чище, но использует относительные URL

0 голосов
/ 03 июня 2010

Я не уверен, что вы можете сделать .htaccess переносимым, по моему опыту, вещи mod_rewrite действительно трогательны, не говоря уже о том, чтобы сделать его переносимым.

Что касается (2), я не совсем уверен, что это требуется больше. Однако вы можете сделать определение в верхней части index.php, которое получит местоположение файла и сохранит его, а затем вытащите определение позже в файле конфигурации.

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