server_name capture and $document_root
Rapsey
rapsey at gmail.com
Mon Mar 16 16:53:05 MSK 2009
Works perfectly. Thank you.
Sergej
2009/3/16 Igor Sysoev <is at rambler-co.ru>
> On Mon, Mar 16, 2009 at 02:35:06PM +0100, Rapsey wrote:
>
> > I'm trying to use the new feature from 0.7.40 - captures in server_name.
> > I use $document_root in SCRIPT_FILENAME for fastcgi. The problem is that
> the
> > captured part of server_name is not being used. If I check my access log,
> it
> > will say this:
> > 404 .... /var/www/htdocs//index.php
> >
> > For a regular index.php, the path will be correct and the captured part
> will
> > be in it:
> > 200 .... /var/www/htdocs/domain/index.html
> >
> > This is the gist of my config:
> >
> > server {
> > listen 80;
> > server_name ~^(www\.)?(.+)\.(.+)$;
> > root /var/www/htdocs/$2;
> >
> > log_format main '$status "$request" $body_bytes_sent $remote_addr
> > $document_root$fastcgi_script_name';
> > ....
> >
> > location ~ .php$ {
> > fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
> > ... # normal fastcgi params
> > }
> > }
> > }
> >
> > Is this a bug or an incorrect config on my part?
>
> The "root /var/www/htdocs/$2" is evaluated in "location ~ .php$" context,
> therefore, the ".php$" regex clears $2. The woraround is:
>
> server {
>
> server_name ~^(www\.)?(.+)\.(.+)$;
> set $domain $2;
> root /var/www/htdocs/$domain;
>
> BTW, you better to use 0.7.42, as there are bugfixes in captures.
>
>
> --
> Igor Sysoev
> http://sysoev.ru/en/
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx/attachments/20090316/687a7d28/attachment.html>
More information about the nginx
mailing list