another rewrite/try files issue

Stelianos G. Sfakianakis sgsfak at
Mon May 23 01:20:55 MSD 2011


I am having the following problem:

 - I want to have a "virtual" url e.g. "/myapp" to have a totally
different document root e.g. "/home/stelios/myapp" (instead of the
default '/var/www')
 - locations of the type "/myapp/css/print.css" should respond with
the specific file at the  "/home/stelios/myapp" root (i.e. with
 - if the the file requested does not exist, then the "index.php"
should be called via FastCGI with args "?u=$uri" (e.g.
"/myapp/users/12" should be rewritten to

I have tried the following:

location ~ /myapp/(.*) {
                root /home/stelios/myapp;
                try_files /$1 /$1/ /index.php?u=$1;
# and the "default" PHP/FastCGI
location ~ \.php$ {
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME
                include fastcgi_params;

but it seems that it doesn't work for the non files. In particular it
seems that after the internal redirect to index.php, the root is
overwritten and instead of calling my  /home/stelios/myapp/index.php
the one at the default root ("/var/www/index.php") is beeing called.

Do you know what's wrong? And possibl another way to achieve what I want?

Thank you very much in advance!

P.S. I am using nginx-0.8.4 on Ubuntu


More information about the nginx mailing list