Rewrite URI

Maxim Dounin mdounin на mdounin.ru
Пт Дек 3 19:03:43 MSK 2010


Hello!

On Fri, Dec 03, 2010 at 06:48:18PM +0300, Sergey Shepelev wrote:

> 2010/12/3 Ivan . <jhe1979 at gmail.com>:
> > Привет!
> >
> >  как сделать rewrite определенных папок на extern url?
> >
> > например: /var/www/html/data > http://www.domain.ltd/data
> >
> > Если буду запрашивать http://www.domain2.ltd/data файлы будут браться с
> > http://www.domain.ltd/data
> >
> > Весь хост redirect не возможно делать, возможно только кое-какие папки
> >
> > Спасибо за помощь
> >
> 
> Вы упомянули три возможных варианта:
> - "как сделать rewrite"
> 
> location /data {
>   rewrite ^ http://www.domain.ltd$request_uri permanent;

Just some minor notes:

-   rewrite ^ http://www.domain.ltd$request_uri permanent;
+   rewrite ^ http://www.domain.ltd$request_uri? permanent;

Иначе будут дублироваться аргументы.

> }
> 
> - "файлы будут браться"
> 
> location /data {
>   root /var/www/domain2-files;
> }
> 
> - "браться с http://www.domain.ltd"
> 
> location /data {
>   proxy_pass http://www.domain.ltd$request_uri;

-   proxy_pass http://www.domain.ltd$request_uri;
+   proxy_pass http://www.domain.ltd;

Не надо использовать proxy_pass с переменными там где он не нужен.

В подобной конструкции proxy_pass с переменными имеет смысл 
использовать только с одной целью: чтобы www.domain.ltd регулярно 
резолвился.  Но чтобы заработало - нужно ещё и описать resolver.

В остальном всё верно.

Maxim Dounin



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