我如何重定向所有尝试到达文件夹的请求?
例如我想重定向:
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
将请求代理给它。