Конфигурация 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;  

Я надеюсь, что все идет хорошо!

Другие вопросы по тегам