Apache загружает любой файл, который начинается с той же строки, что и URL-адрес.Как это предотвратить? - PullRequest
2 голосов
/ 23 апреля 2010

Если я укажу на:

mywebsite.com / поиск

и существует файл с именем search.php или search.html или search.inc.php или search.whatthehell.php в каталоге веб-сайта, Apache будет указывать на этот файл вместо 404'ing.

Что еще более раздражает, так это то, что если я укажу на:

mywebsite.com / поиск / строка? = Также то, что

Apache по-прежнему будет отображать любой файл с именем файла, начинающимся с «search».

Кроме того, все RewriteRules с шаблонами, содержащими имена файлов, существующие в каталоге, игнорируются / бесполезны.

Я использую Apache 2 на Mac, неизмененный httpd.conf. Как я могу предотвратить перенаправление моих URL так свободно?

1 Ответ

2 голосов
/ 05 мая 2010

Вам придется отключить опцию MultiViews с помощью директивы Options. Это особенность модуля согласования контента Apache, поэтому, если вы не используете mod_negotiation, вы можете просто выгрузить его.

http://httpd.apache.org/docs/2.0/content-negotiation.html

Пример отключения MultiView для каталога / var / www:

<Directory /var/www/>
    Options Indexes FollowSymLinks -MultiViews
    AllowOverride None
    Order allow,deny
    allow from all
</Directory>

http://httpd.apache.org/docs/2.0/mod/mod_negotiation.html#multiviews

...