Страница не найдена — 404⚓︎
Есть несколько причин, по которым вы можете получить ошибку Не найдено, и каждая из них вызвана разными факторами.
Приведенные ниже примеры относятся к веб-серверу Apache, который является наиболее распространенным серверным программным обеспечением..
IIS использование файла .htaccess⚓︎
После добавления URL Rewrite на сервер IIS с помощью установщика веб-платформы перезапустите сервер IIS. Перейдите в интерфейс управления IIS, дважды щелкните «Переопределение URL-адреса», в разделе «Правила для входящих подключений» щелкните «Правила импорта», в разделе «Правила для импорта» перейдите к файлу конфигурации, выбрав файл .htaccess в корне, а затем нажмите «Импорт». Перезагрузите сервер IIS. Получите доступ к Grav прямо сейчас.
Отсутствующий файл .htaccess⚓︎
Первое, что нужно проверить, это наличие предоставленного файла .htaccess
в корне вашей установки Grav. Поскольку это скрытый файл, вы обычно не увидите его в окнах проводника или искателя. Если вы извлекли Grav, а затем выбрали и переместили или скопировали файлы, возможно, вы оставили этот очень важный файл позади.
Настоятельно рекомендуется разархивировать Grav и переместить всю папку на место, а затем просто переименовать папку. Это гарантирует, что все файлы сохранят свои правильные позиции.
AllowOverride All⚓︎
Для того чтобы предоставленный Grav файл .htaccess
мог установить правила перезаписи, необходимые для правильной работы маршрутизации, Apache должен сначала прочитать файл. Когда ваша директива <Directory>
или <VirtualHost>
настроена с помощью AllowOverride None
, файл .htaccess
полностью игнорируется. Самое простое решение - изменить это на AllowOverride All
. где используется RewriteRule, FollowSymLinks или SymLinksIfOwnerMatch необходимо указать в директиве Options
. Просто добавьте в той же строке +FollowSymlinks
после Options
.
Более подробную информацию о AllowOverride
и всех возможных параметрах конфигурации можно найти в документации Apache.
Проблема RewriteBase⚓︎
Если домашняя страница вашего сайта Grav загружается, но любая другая страница отображает эту очень грубую ошибку Apache-style, то наиболее вероятной причиной является проблема с вашим файлом .htaccess
.
По умолчанию файл .htaccess
, поставляемый вместе с Grav, в большинстве случаев отлично работает сразу после установки. Однако существуют определённые настройки с участием виртуальных хостов, в которых файловая система напрямую не соответствует настройке виртуального хостинга. В этих случаях вы должны настроить параметр RewriteBase
в .htaccess
, чтобы он указывал на правильный путь.
В самом файле .htaccess
есть краткое объяснение:
##
# If you are getting 404 errors on subpages, you may have to uncomment the RewriteBase entry
# You should change the '/' to your appropriate subfolder. For example if you have
# your Grav install at the root of your site '/' should work, else it might be something
# along the lines of: RewriteBase /<your_sub_folder>
##
# RewriteBase /
Просто удалите символ #
перед директивой RewriteBase/
, чтобы раскомментировать ее, и настройте путь в соответствии со средой вашего сервера.
Мы включили дополнительную информацию, которая поможет вам найти и устранить проблемы с файлом .htaccess
, в наше руководство по htaccess.
Отсутствующие модули Rewrite⚓︎
Некоторые пакеты веб-серверов (я смотрю на ваши EasyPHP и WAMP!) Не поставляются с модулем Apache rewrite, включенным по умолчанию. Обычно их можно включить из настроек конфигурации для Apache, или вы можете сделать это вручную через httpd.conf
, раскомментировав эту строку (или что-то подобное), чтобы они были загружены Apache:
Затем перезапустите сервер Apache.
Тестовый скрипт .htaccess⚓︎
Чтобы помочь изолировать проблемы с .htaccess
и rewrite, вы можете загрузить файл htaccess_tester.php и поместить его в корневой каталог Grav.
Затем перейдите в браузере по адресу http://yoursite.com/htaccess_tester.php
. Вы должны получить сообщение об успешном выполнении и увидеть содержимое файла .htaccess
.
Затем вы можете проверить, работают ли перезаписи, создав резервную копию существующего файла .htaccess:
А затем попробуйте этот простой файл .htaccess
:
Затем попробуйте этот URL: http://yoursite.com/test
. Фактически, любой путь, который вы используете, должен отображать сообщение об успешном выполнении, сообщающее вам, что mod_rewrite
работает.
После того, как вы закончили тестирование, вы должны удалить тестовый файл и восстановить файл .htaccess
:
Встроенная страница ошибки 404⚓︎
Если вы получаете сообщение об ошибке Grav-style с сообщением Ошибка 404, значит, ваш .htaccess работает правильно, но вы пытаетесь перейти на страницу, которую Grav не может найти.
Наиболее частая причина этого - просто перемещение или переименование страницы. Еще одна вещь, которую нужно проверить, это установить ли для страницы slug
в заголовках YAML страницы. Это переопределяет явное имя папки, которое используется по умолчанию для создания URL-адреса.
Другой причиной может быть ваша страница не маршрутизируемая. Параметр маршрутизации для страницы может быть установлен в заголовках страниц.
404 Page Not Found на Nginx⚓︎
Если ваш сайт находится во вложенной папке, убедитесь, что ваш nginx.conf указывает на эту вложенную папку. Образец nginx.conf содержит комментарий в коде, объясняющий, как это сделать.