> Совершенно некстати. Не уверен, что $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;
}
- в этом тоже есть своя логика. Главное - изначально избавиться от
этого порочного дуализма.
Алекс Марртовский.