Почему URL-адреса к PHP-страницам не дают 404, когда к URL добавляется нонсенс - PullRequest
1 голос
/ 06 марта 2019

Давайте возьмем правильный URL-адрес php-страницы, например: https://secure.php.net/ChangeLog-7.php

Если мы добавим теперь косую черту и какой-то случайный мусор, как этот: https://secure.php.net/ChangeLog-7.php/nonexistentfolder/anotherfile.html, URL все еще работает.По моему мнению, это должно было сгенерировать ошибку 404, потому что «nonexistentfolder» - это папка, не существующая на удаленном сервере, а «anotherfile.html» - это несуществующий файл.

Это, как правило, происходитНезависимо от веб-сервера или правил перезаписи, поэтому он, кажется, имеет свой источник в модуле PHP-веб-сервера.

Я понимаю, что такое PATH_INFO , но я не понимаю,почему при вызове такого URL-адреса не генерируется ответ 404, что было бы в случае, если существующий файл в URL-адресе был бы .html (а не .php).

Как люди справляются с этим, т.е. чтобы избежать такогофиктивные ссылки, попадающие в поисковые системы или тому подобное?

Спасибо!

1 Ответ

1 голос
/ 06 марта 2019

Согласно Документации Apache , параметр для AcceptPathInfo зависит от обработчика, используемого для ответа на запрос. Обработчики, отвечающие на запросы для файлов .html и .php, различаются, и кажется, что обработчик для .php по умолчанию принимает PATH_INFO.

Если вы хотите, чтобы веб-сервер отвечал с 404-статусом, когда URL-адрес указывает на недопустимый файл / папку, но содержит действительный файл .php в начале URL-адреса, вы можете сделать это, добавив следующее, т.е. в .htaccess-файл:

<Files ~ "\.php$">
AcceptPathInfo Off
</Files>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...