CodeIgniter — это популярный PHP-фреймворк, известный своей простотой и удобством использования. По умолчанию URL-адреса CodeIgniter содержат сегмент «index.php», что может быть нежелательно с точки зрения эстетики и SEO. В этой статье мы рассмотрим различные методы удаления сегмента «index.php» из URL-адресов CodeIgniter при использовании веб-сервера Apache. Мы предоставим примеры кода для иллюстрации каждого метода.
Метод 1: использование файла.htaccess
Наиболее распространенный и рекомендуемый способ удалить «index.php» из URL-адресов CodeIgniter — использовать файл.htaccess. Создайте или измените существующий файл.htaccess в каталоге проекта CodeIgniter и добавьте следующий код:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
Метод 2: изменение файла config.php
Другой подход — изменить файл конфигурации CodeIgniter. Откройте файл config.php
, расположенный в каталоге application/config
, и измените следующую строку:
$config['index_page'] = 'index.php';
до
$config['index_page'] = '';
Метод 3: включение строк запроса
Если предыдущие методы не работают в вашей настройке, вы можете включить строки запроса в CodeIgniter. Откройте файл config.php
и установите следующую конфигурацию:
$config['enable_query_strings'] = true;
Затем измените файл .htaccess
, используя следующий код:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^(.*)
RewriteRule ^(.*)$ index.php?/$1 [L]
Метод 4: Конфигурация виртуального хоста
Если у вас есть доступ к конфигурации сервера Apache, вы можете создать виртуальный хост для вашего проекта CodeIgniter. В блоке VirtualHost установите DocumentRoot
в каталог проекта CodeIgniter и добавьте блок Directory
со следующей конфигурацией:
<Directory "/path/to/your/project">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>