2017-08-08 85 views
0

有一个similar question了,但我需要一个建议如何把两者缺部分组合在一起:如何获得REQUEST_URI不带任何参数上的Nginx

我需要以下结构:

location ~*  { 
if ($args ~ *)  { 
add_header Link "<$scheme://$http_host$request_uri>; rel=\"canonical\""; 
} 
} 

其中$request_uri绝是非编码的网址(不能使用$uri)。这种方式如何摆脱args

map $request_uri $request_uri_path { 
    "~^(?P<path>[^?]*)(\?.*)?$" $path; 
} 

进入我的例子?

+0

您可以用'$ request_uri'在'if'语句而不是'$ args'并捕获您需要的部分在测试尾巴? –

回答

0

对于那些谁稍后将需要:整个背景是这样的:

http { 
     map $request_uri $request_uri_path { 
     "~^(?P<path>[^?]*)(\?.*)?$" $path; 
     } 

     server { 

       location ~* { 
       if ($args ~ .) { 
       add_header Link "<$scheme://$http_host$request_uri_path>; rel="canonical""; 
           } 
          } 

       } 

    }