Redirect с переменной $host в условии

Andrew Kopeyko kaa at ramtel.ru
Fri Aug 26 12:06:09 MSD 2005


On Fri, 26 Aug 2005, Alexander Yusupov wrote:

> Забыл сказать что с $http_host тоже пробовал, т.е.:
> if ($http_host ~ !^www\. ){
>  rewrite  ^(.*)$  http://www.$http_host$1;
> } не работает.

Постройте отдельный виртуальный хост, в котором безусловно редиректе в 
нужное место:

  	server {
 		listen 80;
  		server_name somename.com;
 		rewrite  ^(.*)$  http://www.somename.com$1;
  		access_log /var/log/nginx/access.log vhost;
 	}

> On Friday 26 August 2005 01:26, Igor Sysoev wrote:
>> On Fri, 26 Aug 2005, Alexander Yusupov wrote:
>>> Есть несколько виртуальных серверов (все описаны в едином разделе
>>> server). Требуется следуюшие: проверятся наличие www. в имени домена,
>>> если нет, то идет редирект на www.$host
>>>
>>> в апаче можно сделать так:
>>>
>>> RewriteCond %{HTTP_HOST}   !^www\. [NC]
>>> RewriteCond %{HTTP_HOST}   !^$
>>> RewriteRule ^/(.*)         http://www.%{HTTP_HOST}/$1 [L,R=301]
>>>
>>> в nginx такой способ не работает, покрайней мере у меня:
>>> if ($host ~* !^www\.){
>>>   rewrite  ^(.*)$  http://www.$host$1;
>>> }
>>>
>>> есть идеи как можно такое сделать?


-- 
Best regards,
Andrew Kopeyko <kaa at ramtel.ru>
CTO

   Rambler Telecom	http://www.ramtel.ru/
   phone :		+7 095 745-3619


More information about the nginx-ru mailing list