Конфигурация MVC на веб-сервере
Я недавно загрузил свой проект codeigniter на мой веб-сервер.
это в папке с именем project1 это то, как выглядит мой вид каталога
[www.myurl.com]
|-> project1
|-> application
|-> css
|-> images
|-> js
У меня две проблемы.
Во-первых, я хочу, чтобы он загружал мое приветствие, когда я захожу на (www.myurl.com), а не (www.myurl.com/project1/main_controller/index.php/welcome). Как мне избавиться от всего этого мусора?
Вторая проблема, когда я использую <?php echo base_url();?>
он хорошо виден в исходном виде, но когда я нажимаю на него, отображается URL [www.myurl.com/project1/www.myurl.com/project1/], почему он это делает?
2 ответа
Похоже, вы установили CodeIgniter в подкаталог. Если вы хотите, чтобы ваш CI-сайт загружался из корневого URL-адреса, скопируйте его на один каталог вверх, чтобы папки Application и System находились непосредственно под корневым URL-адресом вашего веб-каталога. Оттуда правила.htaccess, которые публикуются shail (и цитируются ниже), должны позаботиться об удалении index.php из ваших путей.
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ ci/index.php/$1 [L]
Что касается проблемы site_url(), убедитесь, что ваша переменная $config['base_url'] установлена в application/config/config.php и содержит косую черту.
$config['base_url'] = "http://www.myurl.com/";
Чтобы проверить это далее, попробуйте передать параметр в функцию site_url() следующим образом:
echo site_url(welcome);
Который должен вернуться: http://www.myurl.com/welcome если все настроено правильно.
Настроить и запустить CI довольно просто. Большая часть этого требует, чтобы вы отредактировали несколько файлов конфигурации.
Вам нужно настроить CI, чтобы он указывал на правильный базовый URL-адрес приложения. Для этого откройте файл system / application / config / config.php и отредактируйте элемент массива base_url, чтобы он указывал на ваш сервер и папку CI. просмотреть обычную копию в буфер обмена?
$config['base_url'] = "http://localhost/ci/";
В настоящее время настройка CI будет иметь контроллер по умолчанию, называемый "welcome.php"; Вы можете найти это в папке system / application / controllers. Для этого урока удалите его и откройте файл system / application / config / rout.php. Измените элемент массива по умолчанию, чтобы он указывал на контроллер "helloworld". просмотреть обычную копию в буфер обмена?
$route['default_controller'] = "Helloworld"
CI также имеет файл представления, который нам не нужен. Откройте папку system / application / view / и удалите файл welcome_message.php.
Вы можете изменить свой контроллер по умолчанию здесь.
Чтобы редактировать URL http://localhost/ci/index.php/helloworld/
Есть несколько вещей, которые вы можете сделать, чтобы улучшить работу CodeIgniter - например, удалить этот раздражающий бит index.php из URL. Вы можете выполнить эту задачу, создав файл.htaccess в корневой папке и добавив следующий код.
RewriteEngine для RewriteCond $1!^(Index.php|images|robots.txt) RewriteRule ^(.*)$ Ci/index.php/$1 [L]
Вам также необходимо открыть файл config.php в system / application / config / и отредактировать элемент массива index_page в пустую строку. просмотреть обычную копию в буфер обмена?
$config['index_page'] = "";
Другой хитрый прием - включить возможность CI анализировать альтернативный синтаксис PHP, если он не включен сервером. Для этого откройте тот же файл, что и раньше, system / application / config / config.php, и установите для элемента массива rewrite_short_tags значение TRUE. просмотреть обычную копию в буфер обмена?
$config['rewrite_short_tags'] = TRUE;
Я надеюсь, что все идет хорошо!