server_name capture and $document_root

Rapsey rapsey at
Mon Mar 16 16:35:06 MSK 2009

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

   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?

thank you,
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the nginx mailing list