ПРОЕКТЫ 


  АРХИВ 


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]

Re: Реврайт поддоменов . Фреймворк Yii



On Fri, Aug 14, 2009 at 04:14:49AM +0400, Дмитрий - wrote:

> Да, адреса должны переписываться в нечто на подобие этого:
> corpix.ru/index.php/controller/action?blogname=aaa
> Для .jpg, .png, .js, .css и т.д. был прописан отдельный location
>     location ~ "\.(js|ico|gif|jpg|png|css)$" {
>         root            /www/corpix.ru/pub/;
>     }
> 
> "if (!-e $request_filename)" никак не связан с blogName
> 
> Вот как конфиг выглядит сейчас
> server {
>     index                index.php;
>     server_tokens            off;
>     autoindex            off;
>     listen                192.168.0.3:80 default;
>     server_name            corpix.ru www.corpix.ru;
>     charset                utf-8;
>     access_log            /var/log/nginx/corpix.ru/access.log    main;
>     error_log            /var/log/nginx/corpix.ru/error.log;
>     root                /www/corpix.ru/pub/;
> 
>     location ~ "^.ht(.*)$" {
>         deny            all;
>     }
> 
>     location ~ \.flv$ {
>         root            /www/corpix.ru/pub/;
>         flv;
>     }
> 
>     location ~ "/a/i/" {
>         access_log            off;
>     }
> 
>     location / {
>         try_files        $uri $uri/ @yii;
>     }

Это можно записать без @yui:

          try_files        $uri $uri/ /index.php$uri;

>     location @yii {
>         rewrite         (.*) /index.php/$1 last;
>     }
> 
>     location ~ \.php {
>         fastcgi_pass        unix:/var/run/php/php-fpm.sock;
>         fastcgi_index        index.php;
>         fastcgi_param        SCRIPT_FILENAME    /www/corpix.ru/pub/index.php
> ;
>         include            fastcgi_params;
>     }
> }
> 
> server {
>     index                index.php;
>     listen                192.168.0.3:80;
>     server_tokens            off;
>     autoindex            off;
>     server_name             ~^([^.]+)\.corpix\.ru$;
>     set                $subdomain $1;
> 
>     charset                utf-8;
>     access_log            /var/log/nginx/corpix.ru/blog-access.log    main;
>     error_log            /var/log/nginx/corpix.ru/blog-error.log;
>     root                        /www/corpix.ru/pub/;
> 
>     rewrite                \.(js|ico|gif|jpg|png|css|flv)$         /$uri
> break;
>     rewrite                ^
> /index.php$uri?blogName=$subdomain break;
> 
>     location ~ \.php {
>         fastcgi_pass        unix:/var/run/php/php-fpm.sock;
>         fastcgi_index        index.php;
>         fastcgi_param        SCRIPT_FILENAME                    /www/
> corpix.ru/pub/index.php;
>         include            fastcgi_params;
>     }
> }

rewrite'ы не нужны:

    location ~ \.(js|ico|gif|jpg|png|css|flv)$ {
    }

    location ~ \.php {
         fastcgi_pass    unix:/var/run/php/php-fpm.sock;
         fastcgi_index   index.php;
         fastcgi_param   SCRIPT_FILENAME    /www/corpix.ru/pub/index.php;
         fastcgi_param   DOCUMENT_URI       /index.php$uri;
         fastcgi_param   QUERY_STRING       blogName=$subdomain;
    }

> 13 августа 2009 г. 11:06 пользователь Igor Sysoev <is@xxxxxxxxxxxxx>написал:
> 
> > On Thu, Aug 13, 2009 at 02:29:44AM +0400, Дмитрий - wrote:
> >
> > > В GET параметр. ПРедполагаю, что вся проблема в том, что я хочу сохранить
> > > красивые урлы
> > > if (!-e $request_filename){
> > >                         rewrite (.*) /index.php/$1 last;
> > >                 }
> > >
> > > Завтра попробую это
> > > location ~ "\.(js|ico|gif|jpg|png|css)$" {
> > >                 root                    /www/corpix.ru/pub/;
> > > }
> > >
> > >
> > >  плюс ко всему ещё и первую часть поддомена переписать в какой-нибудь GET
> > > параметр.
> >
> > То, что оно должно переписываться в параметры, понятно. Я хотел услышать
> > как именно на примере, что-то вроде:
> >
> >  aaa.corpix.ru/bbb      >   corpix.ru/index.php/bbb/blogName=aaa
> >  aaa.corpix.ru/ссс.jpg  >   corpix.ru/index.php/ccc.jpg/blogName=aaa
> >
> > Потому что из приведённых конструкций не до конца понятно, что именно
> > нужно:
> > например, зачем "if (!-e $request_filename)" и как он связан с blogName.
> >
> > > 12 августа 2009 г. 21:34 пользователь Igor Sysoev <is@xxxxxxxxxxxxx
> > >написал:
> > >
> > > > On Wed, Aug 12, 2009 at 08:13:23PM +0400, Дмитрий - wrote:
> > > >
> > > > > Здравствуйте. Я использую фреймворк Yii(http://yiiframework.com) и
> > хочу
> > > > > сделать реврайт для поддоменов как на livejournal например.
> > > > > Искал как это реализовать...ничего толком из этого не вынес...сделал
> > > > такой
> > > > > конфиг
> > > > > ...
> > > > > servername corpix.ru *.corpix.ru
> > > > > # это чтобы скрыть index.php в адресной строке
> > > > >                 if (!-e $request_filename){
> > > > >                         rewrite (.*) /index.php/$1 last;
> > > > >                 }
> > > > >
> > > > >                 if ($host ~* "^(([a-z0-9_\-]+)\.corpix.ru)$") {
> > > > >                         set $uid $2;
> > > > >                         rewrite ^(.*)$ /$1?blogName=$uid last;
> > > > >                 }
> > > > >
> > > > > blogName пуст. У меня есть очень сильное ощущение, что я что-то делаю
> > не
> > > > > так, но плясать вокруг этого кусочка конфига за сегодняшний день
> > > > > устал...подскажите пожалуста как реализовать.
> > > > > Спасибо.
> > > >
> > > > А что нужно-то сделать ? Во что должны быть переписан запросы
> > > >
> > > >   aaa.corpix.ru/bbb
> > > >   aaa.corpix.ru/ссс.jpg
> > > >
> > > > ?
> > > >
> > > >
> > > > --
> > > > Игорь Сысоев
> > > > http://sysoev.ru
> > > >
> > > >
> >
> > --
> > Игорь Сысоев
> > http://sysoev.ru
> >
> >

-- 
Игорь Сысоев
http://sysoev.ru



 




Copyright © Lexa Software, 1996-2009.