因为我们的 php.ini 文件中有一些自定义配置,所以我们显然必须将其存储在我们网站的根目录中,因此任何用户都可以看到它。
我如何阻止人们通过浏览器访问它?
尝试将其放入您的
.htaccess
:
<FilesMatch "php.ini">
Order allow,deny
Deny from all
</FilesMatch>
它拒绝任何试图联系
php.ini
的人。
编辑:Allow 和 Order 在 Apache 2.4 中已弃用。您应该使用
Require all denied
来代替。
<FilesMatch "php.ini">
Require all denied
</FilesMatch>
一种方法是在 php.ini 文件的开头插入类似的内容:
/***************DO NOT ALLOW DIRECT ACCESS************************************/
if ( (strpos( strtolower( $_SERVER[ 'SCRIPT_NAME' ] ), strtolower( basename( __FILE__ ) ) ) ) !== FALSE ) { // TRUE if the script's file name is found in the URL
header( 'HTTP/1.0 403 Forbidden' );
die( '<h2>Forbidden! Access to this page is forbidden.</h2>' );
}
/*****************************************************************************/
我在 OpenLiteSpeed 服务器上遇到了同样的问题。以下代码放在
.htaccess
中为我修复了它。
RewriteRule ^.*\.(ini)$ - [F,L]