我试图忽略我主机上的某些网址(因为他们经常从同步客户端获得请求,而且我不害怕这里有任何暴露/可能性)
典型的网址看起来像;
/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;
}
但它没有产生我的预期,所以我现在转向你们!
关于如何解决这个问题的任何建议?
答案 0 :(得分:0)
使用正则表达式,而不是表达式,例如对于/cloud/remote.php / *:
location ~ ^/cloud/remote.php/(caldav|webdav|carddav)(.*)$ {
access_log off;
}
至于regexps优先级,手册说: “第一个匹配的表达式将停止搜索,nginx将使用此位置。如果没有正则表达式匹配请求,则nginx使用之前找到的最具体的前缀位置。”