Apache 加载以 url 中使用的相同字符串开头的任何文件。如何防止这种情况发生?
如果我指向:
mywebsite.com/search
并且有一个名为search.php或search.html或search的文件。 inc.php 或 search.whatthehell.php 在网站目录中,Apache 将指向该文件而不是 404'ing。
更烦人的是,如果我指向:
mywebsite.com/search/string?also=whatever
Apache 仍会显示文件名以“search.”开头的任何文件。
此外,所有具有包含目录中存在的文件名的模式的 RewriteRules 都将被忽略/无用。
我在 Mac 上使用 Apache 2,未修改 httpd.conf。如何防止它如此随意地重定向我的网址?
If I point to:
mywebsite.com/search
and there is a file called search.php or search.html or search.inc.php or search.whatthehell.php in website's directory, Apache will point to that file instead of 404'ing.
What is even more annoying is that if I point to:
mywebsite.com/search/string?also=whatever
Apache will still display any file with filename that begins with "search.".
Also, all RewriteRules with patterns containing filenames existing in directory are ignored/useless.
I'm using Apache 2 on Mac, unmodified httpd.conf. How do I prevent it from redirecting my urls so freely?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您必须使用 Options 指令禁用 MultiViews 选项。这是apache内容协商模块的一个功能,所以如果你不使用mod_negotiation你可以直接卸载它。
http://httpd.apache.org/docs/2.0/content-negotiation。 html
如何禁用 /var/www 目录的 MultiViews 的示例:
http://httpd.apache.org/docs/2.0/mod/mod_negotiation.html#multiviews
You will have to disable MultiViews option using Options directive. This is a feature of the apache content negotiation module, so if you don't use mod_negotiation you can just unload it.
http://httpd.apache.org/docs/2.0/content-negotiation.html
Example of how to disable MultiViews for the /var/www directory:
http://httpd.apache.org/docs/2.0/mod/mod_negotiation.html#multiviews