如何从 $http_referer 变量中删除斜杠

How to remove slash from $http_referer variable

我想使用 NGINX 作为基于 Referer header 和 $http_refere 变量的 proxy_pass 的动态本地 CDN。问题是 Referer(也是变量)header 在 URL 的末尾包含一个“/”。我想删除 $http_referer 中的尾部斜线。我该怎么做?

我的 NGINX 位置:

location / {
  add_header 'Access-Control-Allow-Origin' '*';
  add_header Referrer-Policy 'strict-origin';
  proxy_pass $http_referer;
}

您可以通过 if 块:

set $proxy $http_referer;
if ($http_referer ~ ^(.*)/$) { set $proxy ; }

或通过 map 指令:

map $http_referer $proxy {
    ~^(.*)/$  ;
    default   $http_referer;
}

然后使用 $proxy 变量和 proxy_pass 指令:

proxy_pass $proxy;