阻止特定的 Nginx 规则 URL

Nginx Rule to Block Specific URL

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

有问题的 url 是:

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

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

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

我 "think" 因为 ?包含问号是将 url 视为查询字符串吗??

此致

如果你想通过参数 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;
}

Add before location /

如果要屏蔽所有URL的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;
}