if ($host ~*
(([a-z0-9-])([a-z0-9-])[a-z0-9-]*)\.([a-z0-
9-]+\.[a-z]+)$) {
set $rootdir all/hosting/$4/$2/$3/$1;
}
root /$rootdir;
index index.html index.htm;
autoindex on;
}
}
При запросе http://sub1.domainN.ru/dir (где dir - существующая директория)
хочется, чтобы nginx выдавал редирект на http://sub1.domainN.ru/dir/ ,
как это делал Апач до установки nginx'a. Для этого написано:
optimize_server_names off;
Но этого не происходит, и редирект всегда отдается на первый домен
в server_name: http://domain1.ru/dir/
На другом виртхостинге, где root берется из map, все работает нормально.
Что не так?
А если "optimize_server_names off" поставить на уровень http ?
Хочу также обратить внимание всех на необходимость инициализации $rootdir
в данном примере: set $rootdir nonexistent;
Угадайте, что будет, если вдруг в $host будет что-то не попадающее
в regex. ;-)
Лучше делать так:
set $rootdir nonexistent;
...
root /all/hosting/$rootdir;
Игорь Сысоев
http://sysoev.ru