拒绝访问某个位置 nginx

拒绝访问某个位置 nginx

我的 nginx 错误日志中有以下消息:

FastCGI 在 stderr 中发送:“无法打开主脚本:/www//vb/showthread.php

我的网站不是用 vb 制作的,所以我想拒绝对 /vb/ 的任何请求,我该怎么做?
我尝试了

location /vb/ {
deny all;
}

但我仍然在错误日志中看到许多这样的错误,看起来像垃圾请求。

我怎样才能阻止访问/wp-loging.php等?

我发现错误日志中的双 // 很奇怪并且我无法理解。

这是我的服务器配置:

server {
    listen       80;
    server_name  www.domain.com;

    #charset koi8-r;

    #access_log  logs/nattiq.access.log  main;

    location / {
        root /home/www;
        index  index.php;
        try_files $uri @rewrite;
    }
    location //vb/showthread.php {
         deny all;
         }
         location /wp-login.php {
              deny all;
              }
    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root /home/www;
            proxy_http_version 1.1;
proxy_set_header Connection "";
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
      location @rewrite {
rewrite ^ /index.php;

}

    location ~ \.php$ {
        root /home/www;
    #    fastcgi_pass   127.0.0.1:9000;
 fastcgi_pass unix:/var/run/php5-fpm.sock;        
        fastcgi_index  index.php;
            fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
        include        fastcgi_params;
            fastcgi_read_timeout 150;

答案1

双重//原因是 SCRIPT_FILENAME,它实际上应该是这样的:

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

您不应该尝试阻止.php不存在的单个文件,而应该.php通过在块顶部添加一行来防止任何虚假文件向上游传输location ~ \.php$

try_files $uri =404;

这个文件了解详情。

相关内容