ПРОЕКТЫ 


  АРХИВ 


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]

вопрос по rewrite и subdomain


  • To: nginx-ru@xxxxxxxxx
  • Subject: вопрос по rewrite и subdomain
  • From: "sh" <nginx-forum@xxxxxxxx>
  • Date: Wed, 24 Mar 2010 14:27:18 -0400
  • Dkim-signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mickey.jlkhosting.com; s=x; h=Sender:From:Message-ID:Content-Transfer-Encoding:Content-Type:Subject:To:Date; bh=uyLsfWm9bOhNQoznoWXgk+v4fHmcE7I2QAkjbVT/IZA=; b=XyJP63gZ5crVf1PWh4/pQwPLXcdflWah5LTWnEg/RiUAG65mkDJ5IyAxovCR51pBoRK/UoVb8hn+Gaw62UhEJ5rQq1b0Zf73xC0DchikPZGCGCwkjB4hEqU4O2lYQeTl;

Здравствуйте.

Уткнулся в такую проблему.
Есть сайт с такой структурой
http://domain.com/catalog/firm1
http://domain.com/catalog/firm2

Появилось желание у владельца сделать, что бы странички компаний были доступны 
в виде
http://firm1.domain.com/
http://firm2.domain.com/

Изначально добавил в конфиг server_name *.domain.com и попытался решить вопрос 
реврайтом:

if ($host ~* ^(+)\.domain.com$) {
               set $subdomain $1;
               rewrite ^ /index.php/enterprises/$subdomain last;
               break;
 }

По итогу получил на поддоменах отображение корня сайта.
Перечитал список рассылки и форум, пошел по рецептам, сделал второй виртуал 
хост в который вынес обработку поддоменов:

server {
        listen          80;
        server_name ~^([^.]+)\.domain\.com$;
        set $subdomain $1;
        server_tokens off;

        send_timeout 120;

        root            /usr/local/www/nginx;
        index           index.php;
        fastcgi_index   index.php;

        rewrite                \.(js|ico|gif|jpg|png|css|flv)$         /$uri 
break;
#Тут пробовал еще rewrite ^ /index.php$uri$subdomain break;
        rewrite                /                         
/index.php$uri$subdomain break;

        location ~ \.php {
               include fastcgi_params;
               keepalive_timeout 0;
                expires      30d;
               fastcgi_param   SCRIPT_FILENAME  
$document_root$fastcgi_script_name;
               fastcgi_pass    127.0.0.1:9000;
        }

}

В результате тот же эффект - корень сайта.

debug лог:
2010/03/24 20:16:28  52531#0: *10862 "/" matches "/", client: 89.252.34.110, 
server: ~^([^.]+)\.domain\.com$, request: "GET / HTTP/1.1", host: 
"firm1.domain.com"
2010/03/24 20:16:28  52531#0: *10862 rewritten data: "/index.php/firm1", args: 
"", client: 89.252.34.110, server: ~^([^.]+)\.domain\.com$, request: "GET / 
HTTP/1.1", host: "firm1.domain.com"

nginx -V
nginx version: nginx/0.8.33
configure arguments: --prefix=/usr/local/etc/nginx --with-cc-opt='-I 
/usr/local/include' --with-ld-opt='-L /usr/local/lib' 
--conf-path=/usr/local/etc/nginx/nginx.conf --sbin-path=/usr/local/sbin/nginx 
--pid-path=/var/run/nginx.pid --error-log-path=/var/log/nginx-error.log 
--user=www --group=www 
--http-client-body-temp-path=/var/tmp/nginx/client_body_temp 
--http-proxy-temp-path=/var/tmp/nginx/proxy_temp 
--http-fastcgi-temp-path=/var/tmp/nginx/fastcgi_temp 
--http-log-path=/var/log/nginx-access.log --with-http_dav_module 
--with-http_flv_module --with-http_geoip_module --with-http_gzip_static_module 
--with-http_perl_module --with-http_realip_module 
--with-http_stub_status_module --with-pcre

В чем я туплю и почему открывается только корень, понять не могу. Прошу помощи. 
Свои идеи закончились.

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,67477,67477#msg-67477


_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.