.png)
Я использую Apache 2.4.2 на своем локальном сервере. .htaccess
Файл моего веб-сайта выглядит следующим образом:
DirectoryIndex home.php
Options -Indexes
ErrorDocument 404 /404.php
Это отлично работает при отображении страницы HTTP 404 при попытке доступа к несуществующему файлу в браузере, но не показывает страницу ошибки при доступе к существующим файлам с использованием следующего синтаксиса:
http://localhost/<FileName>.php/<AdditionalCharacters>
Например, если я перехожу на home.php/xyz
, home.php
страница загружается, но все относительные ссылки в HTML не работают. У меня нет каталога home.php
на моем сервере! Что происходит?
Есть ли директива или правило, которые я могу добавить в свой .htaccess
файл, чтобы остановить это поведение и вместо этого выдавать ошибку HTTP 404?
решение1
Эта функция называется «path_info» и обычно используется для запуска целых веб-сайтов из одного скрипта CGI (когда лучшие альтернативы, такие как mod_rewrite, недоступны).
Если URL-адрес заставляет скрипт CGI рассматриваться как каталог, Apache запустит этот скрипт как обычно, но добавит ему дополнительные компоненты пути в PATH_INFO
переменную окружения. Многие вики-движки используют эту функцию — например, вы можете получить доступ кhttps://wiki.archlinux.org/index.php/Beginners%27_Guide/ПодготовкаСюда.
Это можно контролировать с помощьюAcceptPathInfoпараметр.