我有以下内容来记录referer的路径:
map $http_referer $just_path {
"~^(?P<path>[^?]*)(?.*)?$" $path;
}
基本上,我不想记录referer的查询字符串。然而,有些请求来自我们自己,对于那些我只想记录没有路径的scheme + host
的请求(例如。http://www.example.com)。
我如何在为其他人记录scheme + host + path
的同时实现这一点?简而言之:
Site A: http://sitea.com/this/path?v=true -> http://sitea.com/this/path
Site B: https://siteb.com/another/path?another=query -> https://siteb.com/another/path
Our Site: https://www.example.com/this/other/path?x=true&v=false -> https://www.example.com/
正则表达式按顺序求值,因此您可以在必须与自己的主机名匹配的行之前放置新行。
例如:
map $http_referer $just_path {
"~^(?<path>https?://www.example.com/)" $path;
"~^(?<path>[^?]*)" $path;
}
有关详细信息,请参阅本文档。