Codeigniter3 дает 404 после развертывания сервера (не читает папку приложения) - PullRequest
0 голосов
/ 29 мая 2018

Посмотрел пару вопросов по этой теме, и все они, похоже, связаны с .htaccess - я вставил свой ниже.

.htaccess (хранится в корневой веб-папке над приложениями):

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond $1 !^(index\.php|assets|images|js|css|uploads|favicon.png)
RewriteCond %(REQUEST_FILENAME) !-f
RewriteCond %(REQUEST_FILENAME) !-d
RewriteRule ^(.*)$ ./index.php/$1 [L]
</IfModule>

Конфигурация CodeIgniter:

$config['base_url']    = 'https://'.$_SERVER['HTTP_HOST'].'/';
$config['index_page'] = 'index.php';
$config['uri_protocol'] = 'REQUEST_URI';

Сертификат SSL установлен правильно и проверен нормально.Также проверено с base_url, переставленным на http, и настройкой vhost для порта 80. Подстановочный знак также проверен на другом поддомене без codeigniter, работает как положено.

Все страницы возвращаются с ошибкой 404.В журнале доступа Apache отображаются неверные конечные точки, к которым обращаются;

Журнал ошибок Apache:

[core: info] [pid 26683] [client xxxx: 53318] AH00128: Файл не существует:/ var / www / mysite / Account / login

Это неверная конечная точка - это должно быть нажатие / Application / Account / login для загрузки контроллера учетной записи.Это происходит только при текущей установке сервера (Ubuntu 16.04 в стандартном стеке LAMP).

Однако, если бы я настроил vhosts для запуска из папки приложения, это, очевидно, привело бы к потере .htaccess., активы, изображения и т. д. Кто-нибудь знает, почему CI, похоже, ищет контроллеры в корневом каталоге?

Ответы [ 2 ]

0 голосов
/ 29 мая 2018
  • Проверьте имя класса и имя файла класса.
  • Имя класса начинается с заглавной буквы, например, "Функции"
  • Имя файла класса начинается с заглавной буквы, как "функции"
  • Когда вы включаете вашу библиотеку в проект, вы должны писать строчными буквами.Вот так;

Functions.php => $ this-> load-> library ("functions");$ This-> functions-> yourMethod ();

0 голосов
/ 29 мая 2018

Убедитесь, что vhost настроен правильно.Опечатки имеют серьезные последствия для виртуальных хостов, и совершенно неверный путь к контроллеру может указывать на проблему с настройкой vhost.

Вы можете подтвердить, работает .htaccess или нет, включив index.php в адрес вашего браузера.Например,

example.com/index.php/account/login

Если это работает, но не работает, когда вы пропускаете index.php, то либо mod_rewrite не включен, либо ваш vhost испорчен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...