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-адреса.

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