我的目标是只允许IP 1.2.3.4运行/dir1 1/hello-php.php脚本。
“开箱即用”AWS EC2 linux 2 Apache2.4.39(仅作以下更改)、PHP5.7.26和Windows10上使用Firefox70.0 64位。php.conf也有默认设置。
剧本..。/dir1 1/hello-php.php和/dir1 1/hello-html.html
Apache httpd.conf和php.conf具有默认设置,包括。
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted<Files ".ht*">
Require all denied现在,我用.改变了httpd.conf。
<Directory "/var/www/html/dir1">
AllowOverride None
<Files "*.php">
Require ip 1.2.3.4
</Files>从火狐..。
https://www.website.com/dir1/hello-php.php给出了“禁止:您没有在此服务器上访问/dir1 1/hello-php.php的权限。”但是..。https://www.website.com/dir1/hello-html.html工作。
然后,如果我把指令改为..。
<Directory "/var/www/html/dir1">
AllowOverride None
<Files "*.html">
Require ip 1.2.3.4
</Files>然后..。
https://www.website.com/dir1/hello-php.php工作。但是..。https://www.website.com/dir1/hello-html.html给出了“禁止:您没有在此服务器上访问/dir1 1/hello-html.html的权限。”
这些结果回头看,并没有达到我的目标。
为了只允许IP 1.2.3.4成功地运行/ in 1/hello-php.php脚本,我在httpd.conf或php.conf中遗漏了什么?
发布于 2019-10-26 04:44:47
您可以不允许访问整个目录,并且只允许它访问指定的IP:
<Directory "/var/www/html/dir1">
AllowOverride None
Require ip 1.2.3.4或者在你的例子中,你可以这样做
<Directory "/var/www/html/dir1">
AllowOverride None
<Files ~ "\.(html|php)$">
Require ip 1.2.3.4
</Files>此外,html不是脚本。
https://serverfault.com/questions/989449
复制相似问题