2015-04-30 3 views
1

Я использую и я поставил его контроллер по умолчанию в routes.php вCodeIgniter всегда показывает 404 ошибки

$route['default_controller'] = 'home'; 

Я установить Virtual Host для этого проекта, и мой .htaccess выглядит следующим образом

<IfModule mod_headers.c> 
    Header set Access-Control-Allow-Origin "*" 
</IfModule> 
<IfModule mod_rewrite.c> 
    RewriteEngine On 

    RewriteBase/
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ index.php?/$1 [L] 
RewriteRule !^[A-Za-z0-9_/\-\.]*$ - [L,R=404] 
</IfModule> 

<IfModule !mod_rewrite.c> 

    ErrorDocument 404 /index.php 
</IfModule> 

Мой config.php похож на

$config['index_page'] = ''; 

Он работает нормально, если контроллер по умолчанию установлен в welcome

+0

проверить, что имя вашего контроллера - 'home.php', а класс контроллера -' Home'. Я уверен, что вы скопировали файл и забыли изменить имя класса. –

+0

Должно ли быть проверено на наличие двоеточия в правиле повторения допустимых символов? – Tpojka

+1

Вы уверены, что все контроллеры капитализированы, как Welcome.php – user4419336

ответ

0

Если дерево папки что-то вроде этого: htdocs/codeigniter/

Затем используйте следующие коды в файле .htaccess:

RewriteEngine On 
RewriteBase /codeigniter 

RewriteCond %{REQUEST_URI} ^system.* 
RewriteRule ^(.*)$ /index.php?/$1 [L] 

RewriteCond %{REQUEST_URI} ^application.* 
RewriteRule ^(.*)$ /index.php?/$1 [L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?/$1 [L] 

и проверьте ваш controller имя класса и имя файла, если они совпадают.

Смежные вопросы