Как удалить 'index.php' из URL-адреса в CodeIgniter?

Как удалить index.php из моего URL-адреса в CodeIgniter?

Я удалил index.php из моего файла конфигурации, и я запустил свой rewrite_module в Apache (2.2.11), а файл .htaccess :

 RewriteEngine on RewriteCond $1 !^(index\.php|images|captcha|css|js|robots\.txt) RewriteRule ^(.*)$ /index.php/$1 [L] 

Теперь, когда я нажимаю любую ссылку, это показывает, что URL-адрес не найден. В чем проблема?

Попробуйте это в файле .htaccess : комментарии должны помочь вам настроить его для вас …

Это отлично работает для меня на нескольких веб-сайтах CodeIgniter. Кроме того, если mod_rewrite не установлен, он отправит вас на страницу 404 (или вы можете изменить ее для своей цели).

 <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / #'system' can be replaced if you have renamed your system folder. RewriteCond %{REQUEST_URI} ^system.* RewriteRule ^(.*)$ index.php/$1 [L] #Checks to see if the user is attempting to access a valid file, #such as an image or css document, if this isn't true it sends the #request to index.php RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d #This last condition enables access to the images and css folders, and the robots.txt file RewriteCond $1 !^(index\.php|(.*)\.swf|images|robots\.txt|css|docs|cache) RewriteRule ^(.*)$ index.php/$1 [L] </IfModule> <IfModule !mod_rewrite.c> # If we don't have mod_rewrite installed, all 404's # can be sent to index.php, and everything works as normal. ErrorDocument 404 /application/errors/404.php </IfModule> 

Проверьте файл виртуальных хостов и посмотрите, установлены ли эти элементы – это может позволить вашему файлу .htaccess правильно переписать URL-адрес :

 Options FollowSymLinks AllowOverride All Order deny,allow Deny from all 

Это 100% работает, я пробовал. Добавьте в файл .htaccess только следующее:

 RewriteEngine On RewriteCond $1 !^(index\.php|(.*)\.swf|robots\.txt) RewriteRule ^(.*)$ index.php/$1 [L] 

У меня также возникла проблема с правилом перезаписи, предложенным в руководстве пользователя CodeIgniter. Я решил это, удалив косую черту перед index.php

 RewriteRule ^(.*)$ index.php/$1 [L] 

Прежде всего, убедитесь, что вы определили контроллер по умолчанию . Затем убедитесь, что вы создаете URL-адреса таким образом, что с ними связан контроллер. Например,

Главная страница:

 example.com/home/ 

Или для страницы « О нас» :

 example.com/about/ 

Также проверьте, что вы включили модуль mod-rewrite.

У меня также была эта проблема, и я обнаружил, что ответ Шейна помог мне. У меня есть настройки моих сайтов в WAMP .

 RewriteBase /mysite/ 

mysite – это псевдоним, установленный в Apache. Это работало на всех моих сайтах.

.htacess

 RewriteEngine on #Any HTTP request other than those for index.php, #assets folder, files folder and robots.txt #is treated as a request for your index.php file. RewriteCond $1 !^(index\.php|assets|files|robots\.txt) RewriteRule ^(.*)$ index.php/$1 [L] 

после этого перейдите в application/config/config.php и измените эти две переменные со значениями, указанными ниже.

 $config['base_url'] = ''; 

а также

$config['index_page'] = '';

Для всех моих проектов Codeigniter я использую код .htaccess:

 RewriteEngine on RewriteCond $1 !^(index.php|resources|robots.txt) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L,QSA] 

Надеюсь, это поможет.