Я пытаюсь удалить index.php из URL-адресов CodeIgniter 3. В настоящее время, все мои URL-адреса выглядеть следующим образом:Удаление index.php из CodeIgniter 3 URL-адреса
http://example.com/index.php/Controller/function
И я хочу, чтобы выглядеть следующим образом:
http://example.com/Controller/function
Я следовал вместе на следующей статье и переполнения стека пост, еще ни один из ответы, которые я нашел работали для меня:
- https://ellislab.com/codeigniter/user-guide/general/urls.html
- How to remove "index.php" in codeigniter's path
Моя структура каталогов устанавливается следующим образом:
- /вар/WWW/пример
- /применение
- (файлы стандарта приложения CodeIgniter ... контроллеры, модели, виды, конфигурации)
- /public
- /CSS
- /JS
- /шрифты
- /изображения
- index.php
- .htaccess
- /Система
- Я не коснулся все в этом каталоге
- .htaccess
- /применение
Содержание /var/www/example/.htaccess:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ public/ [L]
RewriteRule (.*) public/$1 [L]
</IfModule>
Содержание /var/www/example/public/.htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,L]
</IfModule>
Содержание/var/www/example/application/config/config.PHP (обрезается до того, что я изменился на основе предварительного чтения):
$config['base_url'] = '';
$config['index_page'] = '';
$config['uri_protocol'] = 'REQUEST_URI'; /* have tried AUTO as well */
Для моего сервера Apache, мод-переписывают включена через:
sudo a2enmod rewrite
sudo service apache2 restart
Мой виртуальный хост-файл для этого сайта :
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example/public
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Спасибо! Это сработало отлично! – acamp120