Задать вопрос
@illusionD

Не работают ссылки (роуты?) после переноса сайта на CodeIgniter 3.1.9, куда ещё посмотреть?

Здравия Вам! Прошу подсказки:
Есть немойсайт.рф на CodeIgniter 3.1.9, который нужно перенести с тормозного Windows-хостинга на другой Debian/Ubuntu хостинг. Доменное имя не изменится, но сперва я копирую его на 123456.ru, чтобы протестировать, убедиться, что всё будет нормально и не сломать то, что как-то работает.

Установил Debian 12, nginx + apache 2.4, php7.4, php-fpm, mariadb, memcached, SSL-сертификат LetsEncrypt, скопировал файлы сайта, развернул базу данных, создал пользователя БД как в конфиге, настроил права 755 (также пробовал для .htaccess 644), владельца www-data, исправил в конфиге путь на $config['sess_save_path'] с полными правами.
Все ошибки CodeIgniter исчезли, php обрабатывается, главная страница открывается замечательно, mod_rewrite включен, htaccess срабатывает, подключение к БД есть, AllowOverride All установлен для директории в apache.

Но работает только главная страница, а ссылки типа 123456.ru/contacts показывают ошибку 404 Not Found (nginx). Я гуглил всякое, посмотрел в конфиге $config['base_url'], он там написан не в лоб, ничего править не надо, так и получается https://123456.ru (проверил в выводе php echo).
Также я пробовал https://123456.ru/index.php/contacts
Вот эти параметры в конфиге такие:
$config['uri_protocol'] = 'REQUEST_URI';
$config['url_suffix'] = '';

.htaccess:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^.*$ [NC]
RewriteRule uploads\/(.+)\.(gif|jpe?g|png|bmp)$ [F,NC,L]
php_value upload_max_filesize 30M


И тут я застрял, потому что вообще не сталкивался с CodeIgniter и не представляю, куда ещё заглянуть, чтобы он начал отрабатывать свои роуты.
Пока копаю в сторону mod_rewrite. Хотя он включен, но я создал папку mod_rewrite_test, засунул туда index.php с echo 'hello world' и .htaccess
RewriteEngine On
RewriteRule ^.*$ index.php

И при открытии 123456.ru/mod_rewrite_test/check у меня 404. Может конечно надо nginx вообще снести и оставить только apache...
  • Вопрос задан
  • 42 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
@KingstonKMS
NGINX не понимает htaccess файл.
Либо конвертируйте его в nginx правила, либо оставляйте только apache
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы