Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Apache服务器(和其他服务器)上检测PHP中对.htaccess的支持_Php_Apache_.htaccess_Nginx_Lighttpd - Fatal编程技术网

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

如何在Apache服务器(和其他服务器)上检测PHP中对.htaccess的支持,php,apache,.htaccess,nginx,lighttpd,Php,Apache,.htaccess,Nginx,Lighttpd,出于安全原因,我需要检查客户端是否无法读取目录,即Apache服务器是否支持.htaccess(Apache配置文件中的noAllowOverride None)。这非常重要,因为我最近发现很多产品和框架都没有检查这一点(包括Zend和Symphony)。有没有一种方法可以只使用PHP检查这一点 顺便说一句,如果我错了,请纠正我,但其他服务器(nginx或lighttpd)似乎不支持.htaccess。在这些情况下,如何检查我的目录是否不可被客户端读取?您可以在htaccess中设置一个变量,然

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


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

您可以在htaccess中设置一个变量,然后从PHP中访问它。这将告诉您是否正在使用htaccess(并且setenif模块正在运行)。但它不会告诉你更多——例如,它不会告诉你是否可以使用mod_重写。要知道哪些模块正在运行,您可以通过编程方式检查phpinfo的输出。

您可以通过
检查文件是否可读(“.htaccess”)


print\r(apache\u get\u modules())
将向您显示加载的apache模块。

也许您可以上载包含以下内容的.htaccess文件:

Options -Indexes
然后尝试访问有问题的目录, 如果它们不可访问,则可以使用

如果没有,你的主人应该能够帮助你轻松完成这项任务
您所在的平台。

所有的回答似乎都很有趣,但。。。我勒个去?!为什么没有简单的解决方案来询问PHP目录是否得到了很好的保护?!