在我的php.ini中,我禁用了allow_url_fopen。我想为我的/ example目录启用它,如下所示,但是它不起作用。但是,如果我将指令从/ example移到它上方的〜.php $位置,则它可以正常工作。我在想/ example位置块永远不会被处理。有什么想法可以让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";
}
}
答案 0 :(得分:4)
nginx
选择一个location
来处理请求。有关详细信息,请参见this document。
正则表达式 location
块优先于常规 prefix location
块,因此任何以.php
结尾的URI都是由您的location ~\.php$
块处理,无论它是否以/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";
}
}