ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Поддомены



у меняполитика на 1 домен (сайт) 1 сервер
внутри него всеи описывается
поэтому вариант с кучей server {} не подходит

свой рут я же тоже задаю с помощью root    /home/user/host.ru$subdomain;
я поэтому и написал что скрипт находящийся в
/home/user/host.ru$subdomain видит пипку /home/user/host.ru$subdomain
как корневую
и кроме как по домену в конфиге nginx нельзя опереться чтобы написать
свое rewrite правило для конкретного поддомена

что то типо

if ($subdomain_name = "subdomain" ) {
        if (!-f $request_filename) {
                rewrite ^ /engine/index.php last;
        }
}


31 августа 2009 г. 12:43 пользователь Sergey Shepelev
(temotor@xxxxxxxxx) написал:
> 2009/8/31 Роман <n.g.i.n.x.e.r@xxxxxxxxx>:
>> ничего не понял
>>
>> мне для каждого поддомена нужно задать свой реврайт
>> к чему ваша конструкция
>>
>
> Моя конструкция автоматически задаёт свой root для любого поддомена.
>
> Чтобы для каждого поддомена задавать свой реврайт, опишите каждый
> поддомен в отдельной секции server.
>
> server {
>  listen ..
>  server_name sub1.host.ru;
>  rewrite ^ http://foo.bar/;
> }
>
> server {
>  listen ..
>  server_name sub2.host.ru;
>  rewrite ^ http://zar.bar/;
> }
>
> Или я не понял чего вы хотите. Объясните задачу без терминов nginx. На
> входе есть то-то, на выходе надо иметь то-то.
>
>> может я чего то не понял
>> объясните подробнее пожалуйста
>>
>>
>> 31 августа 2009 г. 3:39 пользователь Sergey Shepelev
>> (temotor@xxxxxxxxx) написал:
>>> Извините, предыдущее письмо по ошибке отправил.
>>>
>>> 2009/8/31 Sergey Shepelev <temotor@xxxxxxxxx>:
>>>> 2009/8/31 Роман <n.g.i.n.x.e.r@xxxxxxxxx>:
>>>>> Гдето здесь видел описание работы автоматических поддоменов
>>>>> реализовал у себя подобное
>>>>> но столкнулся с пробелмой - в поддомене нужно сделать реврайт правила
>>>>>
>>>>> сечас работает такая схема
>>>>>
>>>>> server {
>>>>>        listen          127.0.0.1:80;
>>>>>        server_name     host.ru *.host.ru;
>>>>>
>>>>>
>>>>>        set $subdomain "";
>>>>>        if ($host ~* ^([a-z0-9-\.]+)\.host.ru$) {set $subdomain "/sub_$1";}
>>>>>        if ($host ~* ^www.host.ru$)             {set $subdomain "";}
>>>>> ...
>>>>>        location / {
>>>>>                root    /home/user/host.ru$subdomain;
>>>>>        }
>>>>> ...
>>>>> }
>>>>>
>>>>> при такой схеме все что находится в поддомене понимает что находится в
>>>>> location /
>>>>> и привязаться не к чему как к хосту
>>>>> но как тогда написать правило if (!-f $request_filename) { ... } ?
>>>>>
>>>>
>>>> Нельзя писать if (-f $request_filename).
>>>>
>>>>> или может есть другой вариант?
>>>>>
>>>>
>>>> server {
>>>>  listen ..
>>>>  server_name www.hosting.ru;
>>>>  ...
>>>> }
>>>>
>>>> server {
>>>>  listen..
>>>>  server_name ~ ^(.*)\.hosting\.ru;
>>>
>>> Самое главное ж:
>>>
>>>  root /home/user/hosting.ru/$1;
>>>
>>>>
>>>>  location / {
>>>>    try_files $uri @backend;
>>>>  }
>>>>
>>>>  location @backend { здесь проксирование на ваш PHP }
>>>> }
>>>>
>>>
>>
>


 




Copyright © Lexa Software, 1996-2009.