【问题标题】:Nginx Rule to Block Specific URLNginx 规则阻止特定 URL
【发布时间】:2018-07-14 18:35:45
【问题描述】:

在编写规则以阻止以下请求时需要一些帮助

有问题的网址是:

www.somesite.com/catalogsearch/result/?q=downloader

我尝试了以下方法,但这不起作用

location ^~ catalogsearch/result/?q=downloader {
    deny all;
}

我“认为”是因为 ?包含问号是否将 url 视为查询字符串??

问候

【问题讨论】:

    标签: nginx nginx-location


    【解决方案1】:

    如果您想通过参数q=downloader 仅在 URL www.somesite.com/catalogsearch/result/ 上阻止访问:

    error_page 418 = @blockAccess;
    
    location /catalogsearch/result {
            if ($args ~* "q=downloader") {
                    return 418;
            }
    }
    
    location @blockAccess {
            deny all;
    }
    

    location /之前添加

    如果要屏蔽所有网址的q=downloader参数,只需将下面的代码放在location之前:

    error_page 418 = @blockAccess;
    
    if ($args ~* "q=downloader") {
        return 418;
    }
    
    location @blockAccess {
        deny all;
    }
    

    如果你想屏蔽 www.somesite.com/catalogsearch/result/ :

    error_page 418 = @blockAccess;
    
    # Add before "location /"
    location /catalogsearch/result {
            return 418;
    }
    
    location @blockAccess {
            deny all;
    }
    

    【讨论】:

    • 嗨 Valdeir,您建议的答案提供了解决方案谢谢
    • 感谢您节省了一整天
    猜你喜欢
    • 2012-07-23
    • 1970-01-01
    • 2020-11-09
    • 1970-01-01
    • 2015-10-23
    • 1970-01-01
    • 2019-05-16
    • 2013-10-12
    • 1970-01-01
    相关资源
    最近更新 更多