0

У меня есть рабочая веб-страница с CodeIgniter. Теперь я просто загрузил его на свой веб-сервер, и это дает мне ошибку 404.Codeigniter 404 не может найти index.php (только на реальном сервере, а не на виртуальном сервере)

Браузер адрес «web-page.com/folder/en/about»

BaseUrl в конфигурации является «веб-страница/папки /»

Кроме того, это в конфигурации. php, я попробовал AUTO, но он тоже не работает.

$config['index_page'] = ""; 
$config['uri_protocol'] = "QUERY_STRING"; 

index.php находится в "web-page.com/folder/"

Мой Htaccess находится в "web-page.com/folder/.htaccess"

Содержание .htaccess is

AddCharset utf-8 .css .html .xhtml 
Options +FollowSymlinks 
RewriteEngine on 
RewriteBase /folder/ 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond $1 !^(index\.php|images|media|layout|css|libs|robots\.txt) 
RewriteRule ^(.*)$ /folder/index.php?/$1 [L] 

У вас есть подсказка, любая идея, что я могу попытаться сделать? Я проверял все права, даже с 777 он не работает.

Заранее спасибо.

Lukas

+0

Проверьте, если mod_rewrite включен на вашем сервере. У меня была такая проблема некоторое время назад и получается, что mod_rewrite не было. – ronaldosantana

+0

Эй, спасибо за идею, но mod_rewrite определенно активирован на моем сервере. Я попробовал другой сервер, и он тоже не работает. –

ответ

1

Окей, глупый, глупый меня. Я понял.

Ошибка была в моем "routes.php" Я hadt к нижнему регистру контроллер по умолчанию от

$route['default_controller'] = "Base"; 

к:

$route['default_controller'] = "base"; 

Мой сервер форума сделал работу с ним, хотя. Спасибо за поддержку.

+0

У меня такая же проблема, но это не сработало для меня. я в тупике, не знаю, что случилось. – Rasiel

+2

Это проблема чувствительности к случаю. В нижнем регистре имена файлов вашего контроллера. например, «Contact.php» -> «contact.php». Я предполагаю, что вы разрабатываете Windows, принимаете Linux? – starmonkey

2

Я знаю, что это должно быть комментарий, но, видимо, я не хватает респ еще. Кто ваш веб-хостинг? Это может иногда бросать ключ во весь процесс.

Я знаю, что GoDaddy требует некоторых настроек конфигурации для CodeIgniter для работы без индекса index.php.

Если это так, вам нужно изменить свой конфигурационный пункт uri_protocol на QUERY_STRING.

Вы можете оставить свой index_page поле пустым, но вам необходимо обновить файл Htaccess, чтобы что-то вроде этого:

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

Что-то я забыл упомянуть ... Даже если ваш хост не GoDaddy, вы можете попробовать, потому что это займет всего минуту. – vernonk

+0

К сожалению, это не сработало. Я всегда получаю то же сообщение. Но я только что узнал. Если у меня есть ошибка в моем .htaccess, он говорит, что не может найти index.php, а если htaccess верен, ошибка 404. Это означает, что он находит индекс php, не так ли? Вероятно, есть что-то еще. –

0

Как минимум стоит упомянуть, я получал код 404 http, несмотря на то, что я мог печатать данные на экране. Проблема возникла при попытке передать данные POST между формами.

Короче говоря, убедитесь, что вы включили апач переписан:

apache2ctl -t -D DUMP_MODULES 

ИЛИ, обратите внимание на 'mod_rewrite' под "Loaded Modules" под "apache2handler" в phpinfo().

Чтобы включить апачский рерайт:

sudo a2enmod rewrite 

Надеется, что это помогает кто-то!

0

Попробуйте

$config['uri_protocol'] = REQUEST_URI 

меняется между любой REQUEST_URI или QUERY_STRING работал для меня

0

если кто-то снова прочитал этот пост, не забудьте проверить все прописные и строчные буквы в URL