在我的 php.ini 中,我禁用了 allow_url_fopen。我想为我的/example 目录启用它,如下所示,但它不起作用。但是,如果我将指令从/example 移动到它上面的 ~.php$ 位置,那么它就可以正常工作。我在想/example 位置 block 从未被处理过。有什么想法可以让 url fopen 仅在/example 目录中工作吗?
server {
location ~\.php$ {
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
}
location /example {
fastcgi_param PHP_ADMIN_VALUE "allow_url_fopen=1";
}
}
最佳答案
nginx
选择一个location
来处理请求。参见 this document了解详情。
正则表达式 location
block 优先于常规 prefix location
block ,所以任何以 .php
将由您的 location ~\.php$
block 处理,无论它是否以 /example
开头。参见 this document了解详情。
如果您想创建一个发送额外 fastcgi 参数的 location
,您将需要包含所有必需的 fastcgi 指令。
例如:
location ~\.php$ {
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
}
location ^~ /example {
location ~\.php$ {
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
fastcgi_param PHP_ADMIN_VALUE "allow_url_fopen=1";
}
}
关于php - 允许 php 值只在子目录中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52192307/