Re: проблема с раскритием переменной

Alex, the Marrch Ca'at marrch.caat at gmail.com
Thu Oct 22 14:04:12 MSD 2009


> Совершенно некстати. Не уверен, что $server_name вообще хорошая идея.
> А если будет ещё и www.mysite ? И так, и так - два лога или весь
> конфиг передумывать? Ну, это просто на всякий случай.

Я эту проблему предпочел решить такой простой конструкцией:

server {
    listen *:80 default;

    access_log off;

    if ($host ~* ^www\.(.+)$){
        set $x $1;
        rewrite ^ http://$x$request_uri? permanent;
    }
...

- что полностью решает проблему паразитного www без ненужного
усложнения конфигов. Я вообще считаю, что вся эта байда с опциональным
www. - это какая-то нереальная глупость. Никому не нужно объяснять,
что mail.yandex.ru, news.yandex.rum maps.yandex.ru и moikrug.yandex.ru
- могут быть четырьмя совершенно разными сервисами, имеющими крайне
опосредованное отношение к пятому сервису yandex.ru. Так почему
www.yandex.ru и yandex.ru обязательно должно быть одним и тем же? Но
коли уж приходится с этой традицией мириться в угоду пользователям -
лучше облегчить этот процесс для себя максимально, не содержательные
части из доменного имени выбрасывая. Разумеется, можно поступить и
наоборот:

server {
    listen *:80 default;

    access_log off;

    if ($host = yandex.ru){
        rewrite ^ http://www.yandex.ru$request_uri? permanent;
    }

- в этом тоже есть своя логика. Главное - изначально избавиться от
этого порочного дуализма.

Алекс Марртовский.


More information about the nginx-ru mailing list