如何拒绝访问目录内的 php 文件?nginx

如何拒绝访问目录内的 php 文件?nginx

我尝试了很多配置,但仍然无法正常工作。有什么建议吗?

 location ~ /views/(.+)\.php$ {
      deny all;
 }

配置:

server {
    listen       80;
    server_name  ...;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    location / {
        root   /srv/www;
        index  index.php index.html index.htm;
    }

    error_page  404              /404.html;
    location = /404.html {
        root   /usr/share/nginx/html;
    }

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php$ {
    #    root           html;
     include        fastcgi_params;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /srv/www$fastcgi_script_name;
    }


 if (!-e $request_filename){
    rewrite ^/([0-9]+)$ /get.php?get=$1 last;
    rewrite ^/add$ /add.php;
    rewrite ^/rss$ /rss.php;
 }

 location ~ /views/(.+)\.php$ {
    deny all;
 }
}

答案1

URL 与另一个位置匹配。发布配置文件。

交换位置(按照配置文件中定义的顺序检查正则表达式):

location ~ /views/(.+)\.php$ {
 deny all;
}
location ~ \.php$ {
.....

相关内容