如何在Apache服务器(和其他服务器)上检测PHP中对.htaccess的支持

时间:2011-02-20 18:10:41

标签: php apache .htaccess nginx lighttpd

出于安全原因,我需要检查客户端是否无法读取目录, Apache服务器是否支持.htaccess(apache中没有AllowOverride None配置文件)。这是非常重要的,因为我最近发现很多产品和框架都没有检查这个(包括Zend和Symphony)。有没有办法只使用PHP检查这个?

顺便说一句,如果我错了,请纠正我,但似乎其他服务器(nginx或lighttpd)不支持.htaccess。在这些情况下,如何检查客户端是否无法读取我的目录?

3 个答案:

答案 0 :(得分:1)

您可以在htaccess中使用SetEnvIf来设置变量,然后从PHP中访问它。这将告诉您是否正在使用htaccess(并且SetEnvIf模块正在运行)。但它不会告诉你更多 - 例如,它不会告诉你mod_rewrite是否可用。要告诉正在运行的模块,可以以编程方式检查phpinfo的输出。

答案 1 :(得分:1)

您可以按is_readable(".htaccess")检查文件。

print_r(apache_get_modules())将显示已加载的Apache模块。

答案 2 :(得分:1)

也许您可以上传包含此类内容的.htaccess文件:

Options -Indexes

到你的root,然后尝试访问有问题的目录, 如果它们不可访问,它就可以工作。

如果没有,你的主人应该能够轻松地帮助你 你正在使用的平台。