Статья

Ошибка 404

Ты только что водрузил флаг Sngine на своём хостинге, предвкушая, как пользователи толпами ломанутся в твою соцсеть… А они видят ошибку 404 и безликую надпись «Not Found». Знакомо? Поздравляю, ты столкнулся с классикой жанра. Спойлер: всё чинится за чашку кофе, даже не успеет остыть.


1. Модуль mod_rewrite: твой невидимый ниндзя

Самый частый виновник — модуль mod_rewrite. Представь, что это такой тайный ниндзя в сервере Apache, который превращает мудрёные адреса в человеческий вид. Без него ссылки в Sngine рассыпаются, как печеньки в руках у хомяка.

Что делать?

  • Если ты на хостинге → беги в техподдержку с мольбой: «Включите мне mod_rewrite, я печенек пришлю».
  • Если VPS/домашний сервер → открой терминал (не бойся, это не больно) и выполни: bash sudo a2enmod rewrite sudo systemctl restart apache2 Готово! Твой ниндзя вышел из тени.

2. Тайный агент .htaccess: где он прячется?

Sngine дарит тебе файл .htaccess в подарок (лежит в папке с движком). Но беда в том, что на MacOS, Linux и даже в некоторых FTP-клиентах точка в начале имени делает его невидимым — как шпиона в сером костюме.

Как выманить шпиона?

  • FileZilla → ПКМ → «Показывать скрытые файлы» (или Cmd + . на Mac)
  • macOS FinderCmd + Shift + . (магия, правда?)
  • Терминалls -la и ты увидишь его, гордого

Если файла нет вообще — создай сам (обычный блокнот, назови .htaccess, убедись, что нет расширения .txt). Скопируй туда стандартное содержимое из папки docs/ Sngine.


3. cPanel и скрытые файлы: «Галочка, спаси мою карму!»

Многие заливают Sngine через cPanel File Manager и свято верят, что загрузили всё. А .htaccess обиженно сидит в архиве и не показывается.

Инструкция для счастливчиков с cPanel:

  1. Заходишь в File Manager.
  2. Видишь кнопку «Настройки» (или Settings) — жми не глядя.
  3. Ставь галочку «Показывать скрытые файлы (dot files)».
  4. Нажимаешь «Сохранить» и улыбаешься — твой .htaccess нашёлся!

4. Особый случай: твой сервер — гордый Nginx

Ах, ты выбрал Nginx - быстрый, современный, без дурацких .htaccess. Но и проблемы здесь другие.

  • У Nginx нет mod_rewrite и .htaccess. Вместо этого — конфигурация виртуального хоста.
  • Нужно добавить правила для Sngine в секцию server {}.

Примерный фрагмент конфига Nginx (адаптируй под свой путь): nginx location / { try_files $uri $uri/ /index.php?$args; }

location ~ .php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; } После изменений не забудь: `sudo nginx -t` (проверка) и `sudo systemctl reload nginx`.


5. Что ещё могло пойти не так (и как это победить с улыбкой)

  • Права на файлы: папки должны быть 755, файлы 644. Заодно проверь, не заснул ли php-fpm.
  • Кэш браузера: Старая песня. Почисти кэш.
  • Кривые руки при переносе: Если ты перетаскивал файлы по одному, не удивляйся, что что-то потерялось. Залей архивом через cPanel или SSH.

6. Финальный чек-лист счастья

  • Модуль mod_rewrite (для Apache) включён
  • Файл .htaccess на месте и видимый
  • В cPanel отмечена галочка «Показывать скрытые файлы»
  • Для Nginx: правила try_files прописаны в конфиге
  • Права на файлы 755/644
  • Кэш всего мира (браузер, Cloudflare, плагины) сброшен

И помни: каждая ошибка 404 — это просто застенчивое приглашение разобраться в серверах чуть глубже. Ты справишься, и твоя соцсеть будет работать как швейцарские часы. Или как кофеварка в пятницу утром — быстро и с удовольствием.

P.S. Если ты читаешь это и всё ещё видишь 404 — выдохни, поставь чайник, открой лог ошибок сервера (обычно error.log), ищи там фразу rewrite или .htaccess. Или позови друга, который нюхал сервера вживую. Оно того стоит, честное слово! 😉

Закрыт