Я никогда раньше не использовал CodeIgniter, не говоря уже о ANY php framework, и я думал, что попробую. Все идет хорошо, но я не могу удалить index.php из URL-адреса и по-прежнему получать доступ к моим страницам.
Я никогда не использовал структуру MVC, поэтому я учусь, когда я иду, поэтому простите меня, если я сделаю это неправильно.
Я пытаюсь получить доступ к созданному мной представлению "about_page.php", просто набрав localhost/ci/about, но в настоящее время я могу получить к нему доступ только с помощью localhost/ci/index.php/о
Контроллер для страницы: /application/controllers/about.php
Модель для страницы: /application/models/about_model.php
И представление для страницы: /application/views/about_page.php
Я искал решение этой проблемы, но не смог ее найти. Здесь я уже искал:
CodeIgniter - удаление index.php
Codeigniter - как удалить index.php из URL?
http://www.farinspace.com/codeigniter-htaccess-file/
CodeIgniter поставляется с файлом .htaccess в папке "приложение", которая содержит только Allow Deny From All
. Поэтому я создал новый файл .htaccess в корневом каталоге http://localhost/ci/.htaccess
и добавил к нему этот код:
RewriteEngine On
RewriteBase /ci
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
Когда файл .htaccess находится в корневом каталоге, я получаю 500 Internal Server Error. Когда я копирую один и тот же файл в папку приложений, ошибка 500 исчезает, но я до сих пор не могу получить доступ к странице about, используя localhost/ci/about
Я уже изменил $config['index_page'] = 'index.php';
на $config['index_page'] = '';
И я попытался изменить $config['uri_protocol'] = 'AUTO';
на $config['uri_protocol'] = 'REQUEST_URI';
, но я все еще получаю внутреннюю ошибку сервера.
Я зашел в файл httpd.conf и раскомментировал модуль mod_rewrite.so, поэтому я знаю, что mod_rewrite активен.
Есть ли у кого-нибудь идеи, почему это не работает или как я могу получить эту работу? Я знаю, что на StackOverflow много вопросов по этой теме, но я не мог найти ответ на мой вопрос.
Я делаю это правильно? Должен ли я даже получить доступ к странице about, посещая localhost/ci/about или мне нужно создать каталог "about" в каталоге "application"?