首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么Apache在调用文件时执行php文件而不带扩展名

为什么Apache在调用文件时执行php文件而不带扩展名
EN

Stack Overflow用户
提问于 2012-04-08 16:52:50
回答 2查看 2.8K关注 0票数 4

今天我在我的服务器上发现了一个奇怪的东西。我创建了一个php文件(test.php),并在里面写了一些php代码。然后我调用它,使用

代码语言:javascript
复制
http://127.0.0.1/test

然后执行"test.php“!在没有.php的情况下运行test.php是怎么理解的?在我的根目录中没有htaccess文件来告诉apache这样做。我猜这可能会导致安全问题。我怎样才能防止它呢?

我的操作系统是ubuntu,web服务器是Apache2。

EN

回答 2

Stack Overflow用户

发布于 2013-03-30 07:55:31

这是因为MultiViews (它是在该目录的“选项”中启用的)。

请看这里:http://httpd.apache.org/docs/current/content-negotiation.html#negotiation了解其工作原理的详细信息。

票数 7
EN

Stack Overflow用户

发布于 2012-04-08 17:04:51

检查您的apache配置(/etc/apache2/sites-available/site_name或default),它可能包含mod_rewrite指令,例如:

代码语言:javascript
复制
RewriteEngine on
RewriteBase /
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^(([^/]+/)*[^.]+)$ /$1.php [L]

如果您使用#将它们注释掉并重新启动apache,则在不指定扩展名的情况下访问/test应该不再起作用。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10061602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档