2013-08-21 2 views
1

Я использую CodeIgniter, и я пытаюсь удалить index.php из URL-адресов. У меня mod_rewrite включен в Apache, я устанавливаю индекс в пустую строку в файле конфигурации CI, и я использую файл .htaccess, расположенный в нижней части страницы. Я думаю, что часть проблемы может заключаться в том, что мои приложения и системные папки не находятся в моем корневом документе. Моя локальная структура папок сервера выглядит следующим образом:Codeignitier mod_rewrite и родительская папка

mysite.dev/ 
-public_html (server root) 
-application 
-system 
-.htaccess 

Я сделал это так, потому что я читал, что это будет дополнительная безопасность, имеющее применение и систему вне папки public_html. Но правила перезаписи не работают, и я подозреваю, что это имеет какое-то отношение к этому. Я относительно новичок в этом, поэтому я очень ценю любую помощь!

мой файл .htaccess:

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase /#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> 
+0

для дальнейшего использования, следуя этим инструкциям работали http://www.highermedia.com/articles/nuts_bolts/tutorial_advanced_codeigniter_installation – mv3

ответ

0

Я использовал этот код в моем файле .htaccess, как это работает для меня.

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule .* index.php/$0 [PT,L] 
+0

это все еще не работает, если я пытаюсь посетить локальный/дома я получаю 404 ошибку, но локальный /index.php/home работает. Я попробовал ваш htaccess, и я сбросил apache, но не повезло – mv3