如何将具有IP限制的条件模式匹配规则添加到Nginx?

时间:2016-08-14 09:42:46

标签: nginx nginx-location

我想配置一条规则,以便将具有待处理+的任何内容重定向到404页面,但某个allow IP除外。

例如

如果IP为111.111.111.111,将处理http://domain.com/12345+(通过php块)

任何其他条件将返回404未找到

此规则应优先于php阻止。

1 个答案:

答案 0 :(得分:0)

location ~ "^/([0-9a-zA-Z]{5})\+$" {
    allow 111.111.111.111;
    deny all;
    try_files $uri $uri/ /index.php.php$is_args$args;

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php-fpm-www.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;               
        include fastcgi_params;
    }
}

上述解决方案适用于我,即使它显示403禁止而不是在未经授权的IP中发现404未找到。

如果有人能告诉我如何显示内部404页面,甚至在404发生时重定向到外部网址,我将不胜感激。