我正在尝试在我的服务器配置文件中为NGinx设置安全性指令。我有以下指令:
location /config {
deny all;
return 404;
}
该目录中的所有文件都受到限制,但PHP文件不受该指令的影响,我的意图是拒绝所有内容。我假设配置文件中的另一条指令将覆盖此指令,但是我对NGinx还是个新手。
这是服务器的完整配置代码:
server{
listen 80;
server_name mydomain.com;
root myrootpath;
index index.php index.html index.htm;
include security-directives;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9123;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME
$document_root$fastcgi_script_name;
include fastcgi_params;
}
}
security-directives文件包含第一个代码块中详细说明的指令。
答案 0 :(得分:2)
正则表达式位置块优先于前缀位置块,因此规则中不包含.php
文件。
使用^~
修饰符使前缀位置优先于正则表达式位置块。
例如:
location ^~ /config {
return 403;
}
有关详细信息,请参见this document。