我正在尝试将一些网址重定向到另一个文档路径。我的配置文件如下
###### /etc/nginx/conf.d/site.conf map_hash_max_size 2048;
map_hash_bucket_size 128;
map $uri $new {
include list_4;
}
resolver 127.0.0.1;
server {
listen 81;
server_name abcexample.com;
access_log /var/log/nginx/abcexample-access.log main;
error_log /var/log/nginx/abcexample-error.log;
location / {
if ($new) {
rewrite ^ $new redirect;
}
proxy_pass http://127.0.0.1:8000;
}
}
########### / etc / nginx / list_4
/abc/1.html /abc/hello;
/max/1.html /max/;
~^/xyz/(?<abc>.*)$ /xyz/123;
~^/kkkk/abcdef(?<abc>.*)$ /tttt/bbbbb/jjjj$abc;
~^/kaka/(?<abc>.*)$ /tata/$abc;
注意: 第1,2和3行重定向工作正常。 但第4和第5行不起作用。
root@Hell1:~# curl -I abcexample.com/kkkk/abcef111.html
HTTP/1.1 302 Moved Temporarily
Server: nginx
Date: Tue, 04 Apr 2017 07:08:47 GMT
Content-Type: text/html
Content-Length: 154
Location: http://abcdexample.com/tttt/bbbbb/jjjj$abc
Connection: keep-alive
我的问题是: 我需要在list_4文件中进行哪些更改才能获得如下结果
Location: http://abcdexample.com/news/bbbbb/jjjj111.html
答案 0 :(得分:0)
仅从1.11.0版本开始,才可以组合变量和文本。
结果值可以包含文本,变量(0.9.0)及其组合(1.11.0)。
http://nginx.org/en/docs/http/ngx_http_map_module.html#map
nginx 1.11.0的更改--- 2016年5月24日
*)功能:“ map”指令支持将多个变量组合作为结果值。