CodeIgniter mod_rewrite дает ошибку 404

Я написал приложение CodeIgniter, и я хочу использовать mod_rewrite для очистки моего URL. Я установил приложение CodeIgniter в htdocs / ci-intro /

Вот мой .htaccess файл:

<IfModule mod_rewrite.c> RewriteEngine On RewriteBase /ci_intro/ #Removes access to the system folder by users. #Additionally this will allow you to create a System.php controller, #previously this would not have been possible. #'system' can be replaced if you have renamed your system folder. RewriteCond %{REQUEST_URI} ^system.* RewriteRule ^(.*)$ /index.php?/$1 [L] #When your application folder isn't in the system folder #This snippet prevents user access to the application folder #Submitted by: Fabdrol #Rename 'application' to your applications folder name. RewriteCond %{REQUEST_URI} ^application.* 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 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. # Submitted by: ElliotHaughin ErrorDocument 404 /index.php </IfModule> 

Я изменил config.php в CodeIgniter следующим образом:

 $config['base_url'] = ''; $config['index_page'] = ''; 

Всякий раз, когда я использую свои ссылки для перехода на страницу, я получаю сообщение 404 от CodeIgniter. URL-адрес в моем браузере, кажется, «очищен», хотя (index.php удален). Это URL:

'HTTP: // локальный: 8888 / ci_intro / о'

Может ли кто-нибудь помочь мне избавиться от ошибки 404 и фактически направлять ее на страницу?

ОС: MAC OS X 10.8.2 (последняя версия)
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ SERVER: MAMP
PHP: 5.2.17
Браузеры: Chrome & Safari (в обоих браузерах эта проблема возникает)

Related of "CodeIgniter mod_rewrite дает ошибку 404"

Перед рассмотрением конфигурации вашего сервера, пожалуйста, попробуйте код ниже:

 <IfModule mod_rewrite.c> RewriteEngine On RewriteBase /ci_intro/ #Removes access to the system folder by users. #Additionally this will allow you to create a System.php controller, #previously this would not have been possible. #'system' can be replaced if you have renamed your system folder. RewriteCond %{REQUEST_URI} ^system.* RewriteCond %{REQUEST_URI} ^application.* 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 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. # Submitted by: ElliotHaughin ErrorDocument 404 /index.php </IfModule> 

попробуй это…

 <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_URI} ^system.* RewriteRule ^(.*)$ /Your_folder_Name/index.php?/$1 [L] RewriteCond %{REQUEST_URI} ^application.* RewriteRule ^(.*)$ /Your_folder_Name/index.php?/$1 [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ Your_folder_Name/index.php?/$1 [L] </IfModule> 

Кстати, я использую ту же конфигурацию, что и ваша, и в конечном итоге она не работает независимо от того, как я ее меняю.

Поэтому я отказался от его изменения и попробовал еще одну простую настройку. Попробуйте это, это работает для меня! 🙂

 <IfModule mod_rewrite.c> RewriteEngine on # If the start of the URL doesn't match one of these... RewriteCond $1 !^(index\.php|robots\.txt|assets|cache|images|uploads) # Route through index.php RewriteRule ^(.*)$ index.php/$1 [L] 

 RewriteCond %{REQUEST_URI} ^system.* 

вероятно, не будет запускаться, поскольку REQUEST_URI начинается с /. Пытаться

 RewriteCond %{REQUEST_URI} ^/system 

То же самое для

 RewriteCond %{REQUEST_URI} ^application.* 

И действительно ли ваша система хочет /index.php?/blah blah? Ожидается URL-адрес строки запроса после?.