я сервер статический файл с nginx. что я хочу сделать, чтобы когда кто-то просматривал
http://foo.bar.com/
его перенаправляют на
http://bar.com
но когда я обращаюсь к самому статическому файлу, он должен обслуживать этот файл, например:
http://foo.bar.com/blog/main.css
любой совет?
Спасибо!
Прежде всего вам понадобятся 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 совпадает, там мы проверяем, существует ли файл, и если он его обслуживает, в противном случае мы перенаправим в любом случае.
Я настоятельно рекомендую вам прочитать вики, поскольку все это указано там, и это должно помочь вам понять это полностью.