CodeIgniter Удалить index.php в URL
Я создал codeigniter
проект в Ubuntu
Система и добавлено следующее base_url
следующее.
http://192.168.1.123/project/
Если я получу доступ к любому другому URL-адресу, как показано ниже.
http://192.168.1.123/project/course/view/1
Это перенаправляет на "Страница не найдена". Если я включу index.php
после base_url
Работает нормально.
И я создал .htaccess
файл следующим образом.
RewriteEngine On
RewriteBase /project
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
В config.php
файл
$config['index_page'] = 'index.php';
изменился на
$config['index_page'] = '';
Но все равно его не работает. Пожалуйста, предложите Soultion. Работа будет оценена.
4 ответа
Измените файл.htaccess и попробуйте
RewriteEngine On
RewriteBase /project/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
Шаг 1:
Добавьте это в файл htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
#RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]
</IfModule>
Шаг 2:
Удалите index.php в конфиге codeigniter
$config['base_url'] = '';
$config['index_page'] = '';
Шаг 3:
Разрешить переопределение htaccess в конфигурации Apache (команда)
sudo nano /etc/apache2/apache2.conf
и отредактируйте файл и измените на
AllowOverride All
для папки www
Шаг 4:
Включено переписывание мода apache (команда)
sudo a2enmod rewrite
Шаг 5:
Перезапустите Apache (команда)
sudo /etc/init.d/apache2 restart
Попробуйте с этим:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /project/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /project/index.php [L]
</IfModule>
И в config.php
:
$config['index_page'] = 'index.php';
Пожалуйста, убедитесь, что mod_rewrite
модуль включен
Сначала поместите файл.htaccess вне папки приложения.
Затем поместите следующий код в файл.htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME}!-F
RewriteCond %{REQUEST_FILENAME}!-D
RewriteRule ^(.*)$ Index.php/$1 [L]
Теперь вы можете обновить свой URL без index.php, и он будет работать наверняка
Для тех, кто использует Linux, следующие шаги:
Откройте файл.htaccess в корневой папке вашего проекта. Он находится в той же папке, что и папка приложения.
Измените содержимое.htaccess на
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
откройте файл конфигурации и измените
$config['index_page'] = 'index.php';
к
$config['index_page'] = '';
Перейдите в etc/apache2 и откройте папку с именем apache2.conf
Измените AllowOverride с None на All, как показано ниже.
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
к
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
Откройте терминал и запустите эту команду
sudo a2enmod rewrite
Чтобы активировать новые конфигурации, перезапустите apache с помощью этой команды
systemctl restart apache2
Вы успешно удалили index.php со своего URL-адреса.