rewrite domain in location

Gena Makhomed gmm at csdoc.com
Thu Mar 19 20:23:43 UTC 2015


On 19.03.2015 21:55, cilrill wrote:

> Есть необходимость отдавать весь контент из location pdf с другого доменного
> имени.
> тобишь при "заходе" на ссылки вида www.name.ru/pdf/lalala.pdf контент
> отдавался с pdf.name.ru/pdf/lalala.pdf
>
> сделал вот так, работает, но насколько верно?
>
> location ^~ /pdf/ {
>
> if ($host = www.name.ru) { return 301 $scheme://pdf.name.ru$request_uri; }
>
> можно ли обойтись без if ?
>

можно, для этого выбор сервера надо делать
с помощью server_name и default_server:

server {
    listen 11.22.33.44:80 default_server;
    return 400;
}

server {
    listen 11.22.33.44:80;
    server_name www.example.com;
    ...
    location ^~ /pdf/ { return 301 $scheme://pdf.name.ru$request_uri; }
}

server {
    listen 11.22.33.44:80;
    server_name pdf.example.com;
    ...
}

тогда во второй и третий сервера попадут только запросы
к соответствующим $server_name, а в первый - все остальные.

-- 
Best regards,
  Gena



Подробная информация о списке рассылки nginx-ru