![nginx 映射请求并返回无效](https://linux22.com/image/689959/nginx%20%E6%98%A0%E5%B0%84%E8%AF%B7%E6%B1%82%E5%B9%B6%E8%BF%94%E5%9B%9E%E6%97%A0%E6%95%88.png)
我想重写/返回新的请求
我有
地图
map $request $new_request { include url_rmap.conf; }
文件 url_rmap.conf
#here i have tried all variations $scheme://d.dom https://any.other/address $scheme://d.dom/ https://any.other/address https://d.dom https://any.other/address https://d.dom/ https://any.other/address
服务器块
server { listen ip:port; server_name a.dom b.dom aa.a.dom w.c.dom d.dom; # first try if($new_request) { return 301 $new_request; } # also second with @redirect-nap location / { # Support Clean (aka Search Engine Friendly) URLs try_files @redirect-map $uri $uri/ /index.php?$args; } location @redirect-map { if ($new_request) { # redirect if the variable is defined return 301 $new_request; } } }
两种方式均可调用https://d.dom 重定向失败/没有效果,为什么?
为什么您要尝试映射 $request? – Michael Hampton♦
我可以数出很多...原因
1) 因为我可以 ??? 几乎可以 ? 2) 我想更改外部丑陋的 url,例如:
https://shitgoogle.com/saome.stupidaddres/c/ssss/11232354256goofle
到我的子域名:
https://gc.dom.com :)
第二个:
2) 很矮 3) 很好 4) 随心所欲 5) 独立 5)是我的 !!! 6)等等...
除此之外,名称和服务也是绑定的
答案1
您使用了错误的变量。
您正在尝试map
对$request
变量进行操作,但是它并没有按照您所说的方式运行。
正如文档所述,此变量包含 HTTP 请求的整个请求行。例如:
GET / HTTP/1.1
要匹配用户使用的 URL,您首先必须重建它。没有单个变量包含此信息。例如:
map $scheme://$host$request_uri $new_request {
但这可能仍然不是最好的做法...无论你正在做什么。