允许php值仅在子目录中工作

问题描述 投票:3回答:1

在我的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";
  }
}
php nginx nginx-config
1个回答
4
投票

nginx选择一个location来处理请求。有关详细信息,请参阅this document

正则表达式location块优先于常规前缀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";
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.