Мне кажется, я ищу настройку или мод Apache, который выполняет это поведение, потому что мне нужно его отключить или каким-то образом изменить.Вот предложение:
У меня есть собственная CMS, у которой есть собственный маршрутизатор для обработки перенаправлений, 404 ошибки и красивые URL-адреса.Правила mod_rewrite отлично работают для направления соответствующих запросов к этому маршрутизатору, но есть странный случай, который заставляет Apache сходить с ума и даже никогда не отправлять запрос к маршрутизатору.
- Файл, расположенный в www.example.com/contact.form.php
- Содержимое CMS по адресу www.example.com / contact / contact-us
Запросы на содержимое CMS должны отправляться маршрутизатору, поскольку он не соответствует файлу или каталогу, существующему в файловой системе.На самом деле происходит какой-то странный запрос, который находит файл contact.form.php, но каким-то образом заставляет Apache выдавать свою собственную ошибку 404.
Маршрутизатор предназначен для перехвата ошибок 404, поэтому экран 404 в Apacheникогда не должно быть видно.Все URL-адреса, введенные для этого домена за пределами контактного «каталога» (независимо от того, насколько абсурдны), попадают на мой маршрутизатор и либо получают правильный контент, либо показывают мою страницу 404.
Обходные пути, которые я пришелдо сих пор:
- Измените имя файла на form.contact.php - что отключает любой контент CMS, который может в конечном итоге существовать в www.example.com / form /...
- Создать пустой каталог на www.example.com / contact /
Конфликт явно связан с именем «каталога», соответствующим первомучасть имени файла PHP.Такое поведение существует всякий раз, когда это условие выполняется, и оно не существует, когда оно не выполняется.К сожалению, с CMS я никогда не могу гарантировать, что имена «каталогов» не будут конфликтовать с именами файлов PHP.По этой причине я сконцентрировался на настройке Apache.
Я искал все виды комбинаций ключевых слов и нигде не могу найти ответ.Есть идеи?