nginx 映射请求并返回无效

nginx 映射请求并返回无效

我想重写/返回新的请求

我有

  • 地图

    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 {

但这可能仍然不是最好的做法...无论你正在做什么。

相关内容