将 nginx 根目录重定向到其他 url?

将 nginx 根目录重定向到其他 url?

我使用 nginx 来服务器静态文件。我想要做的是,当有人浏览到

http://foo.bar.com/

他被重定向到

http://bar.com

但是当我访问静态文件本身时,它应该提供该文件,例如:

http://foo.bar.com/blog/main.css

有什么建议吗?

谢谢!

答案1

首先,您需要 2 个服务器块,一个用于 foo.bar,一个用于 bar。

然后,在 foo.bar 服务器块中指定几个位置。

location / {
    rewrite ^ http://bar.com
}

location ~ ^/blog/.+\.(jpg|css|png)$ {
    try_files $uri @rewrite;
}

location @rewrite {
    rewrite ^ http://bar.com
}

Nginx 位置按特异性工作,因此正则表达式位置将在位置之前使用/如果 URI 匹配,我们将检查文件是否存在,如果它确实为其提供服务,否则我们将以任何方式重定向。

我强烈建议你去阅读 wiki,因为所有这些都在那里指定,它应该可以帮助你彻底理解这一点。

相关内容