nginx - NGinx 拒绝对文件夹的所有访问,但 PHP 脚本不受规则影响
问题描述
我正在尝试在我的服务器配置文件中为 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 文件包含第一个代码块中详述的指令。
解决方案
正则表达式位置块优先于您的前缀位置块,因此.php
文件不包含在规则中。
使用^~
修饰符使您的前缀位置优先于正则表达式位置块。
例如:
location ^~ /config {
return 403;
}
有关详细信息,请参阅此文档。
推荐阅读
- github - 我应该在 Github 中为 PHP 使用什么 .gitignore?
- javascript - 通过 JavaScript 以编程方式禁用通知?
- java - 试图让我的重置按钮使计数器归零
- php - laravel attach() 函数在默认数据库中查找表
- python - 使用 discord.py-rewrite 进行全局检查功能
- pandas - Pandas DataFrame 有条件地合并
- delegates - 虚幻引擎 4:多个实例的委托与迭代
- cpu-architecture - L2 高速缓存的未命中率是 L2 未命中与引用的指令总数的比率还是 L1 高速缓存未命中的指令总数?
- android-studio - 使用 android-apt 时无法将我的 android 代码升级到 gradle 3.5.3
- typescript - 云函数在运行所有代码之前结束