Nginx 重定向所有尝试到达文件夹的请求

Nginx 重定向所有尝试到达文件夹的请求

我如何重定向所有尝试到达文件夹的请求?

例如我想重定向:

somedomain.com/folder/subfolder/index.html
somedomain.com/folder/subfolder2/something.html
somedomain.com/folder/subfolder3/somethingelse.html

somedomain2.com/index.html

我尝试过的:

if ( $request_uri = "/folder/.*" ) {
  rewrite ^/(.*)$  http://domain2.com/embed.html    permanent;
}

答案1

server {
    server_name somedomain.com;

    location /folder/ {
        return 301 $scheme://somedomain2.com;
    }
}

server {
    server_name somedomain2.com;

    location / {
        #index index.html; # You could wish to add that, if index default value does not suits your needs
    }
}

这将对任何 /folder/* 请求发出永久重定向。

我冒昧地模仿了 somedomain 和 somedomain2 使用的方案,并使用$scheme多变的。

我没有强制/index.html重定向中的 URI。您可能希望这样做。我还依赖于index指令,这可能不适合您。

如果你希望透明地处理来自其他服务器的内容,你可以使用proxy_pass将请求代理给它。

相关内容