用于阻止特定 URL 的 nginx 规则



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

有问题的网址是:

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

我已经尝试了以下内容,但这不起作用

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

我"认为"是因为 ? 包含问号是否将 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;
}

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;
}

最新更新