加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

返回错误410的位置正则表达式?在nginx

发布时间:2020-12-14 06:27:33 所属栏目:百科 来源:网络整理
导读:我正在使用nginx-1.6.2,2并且我想为与/browse.php?u=http匹配的URL返回错误410,因此这样的请求将获得410: 162.218.208.16 - - [21/Nov/2014:12:35:40 -0500] "GET /browse.php?u=http%3A%2F%2Fwww.bing.com%2Fsearch%3Fq%3DBroke%2C%2BUSA%2Bfiletype%3Apdf
我正在使用nginx-1.6.2,2并且我想为与/browse.php?u=http匹配的URL返回错误410,因此这样的请求将获得410:
162.218.208.16 - - [21/Nov/2014:12:35:40 -0500] "GET /browse.php?u=http%3A%2F%2Fwww.bing.com%2Fsearch%3Fq%3DBroke%2C%2BUSA%2Bfiletype%3Apdf%26first%3D0%26count%3D20%26format%3Drss&b=156&f=norefer HTTP/1.1" 403 570 "http://ww.thespacesurf.com/browse.php?u=http%3A%2F%2Fwww.bing.com%2Fsearch%3Fq%3DBroke%2C%2BUSA%2Bfiletype%3Apdf%26first%3D0%26count%3D20%26format%3Drss&b=156&f=norefer" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)"

我真的不需要正则表达式,所以这样的东西,但它不起作用:

location = /browse.php?u=http {
        return 410;
}

几天后,我在/var/log/nginx-access.log中grep -c为410

$bzip2 -cd /var/log/nginx-access.log.0.bz2 | grep -c ' 410 '
5665
$

这让我感到温暖和模糊)再次感谢!

那是因为location是/browse.php,而不是你指定的那个.

有几种方法可以做到这一点.例如,这样的事情应该做:

location = /browse.php {
        if ($query_string ~ ^u=http) {
                return 410;
        }
}

P.S.:或者使用?*代替?如果u = http不区分大小写.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读