忽略某些网址登录nginx

时间:2014-09-10 19:41:06

标签: nginx

我试图忽略我主机上的某些网址(因为他们经常从同步客户端获得请求,而且我不害怕这里有任何暴露/可能性)

典型的网址看起来像;

  

/cloud/remote.php/caldav/calendars/xxxx@xxxx.com/personlig/   /cloud/remote.php/caldav/calendars/xxxx@xxxx.com/contact_birthdays/   /cloud/remote.php/carddav/xxxx@xxxx.com /

     

/cloud/remote.php/webdav/xxxx@xxxx.com /

我想要实现的是在/cloud/remote.php/或/ carddav /或/ caldav /或/ webdav /这些属于同步客户端并且单独记录之后忽略任何内容

我玩过

location = /cloud/remote.php/ {
    access_log off;
}

location = /caldav/calendars/ {
    access_log off;
}

但它没有产生我的预期,所以我现在转向你们!

关于如何解决这个问题的任何建议?

1 个答案:

答案 0 :(得分:0)

使用正则表达式,而不是表达式,例如对于/cloud/remote.php / *:

location ~ ^/cloud/remote.php/(caldav|webdav|carddav)(.*)$ {
    access_log off;
}

至于regexps优先级,手册说: “第一个匹配的表达式将停止搜索,nginx将使用此位置。如果没有正则表达式匹配请求,则nginx使用之前找到的最具体的前缀位置。”

How nginx processes a request