another rewrite/try files issue

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


Hello,

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
"/home/stelios/myapp/css/print.css"
 - 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
"/home/stelios/myapp/index.php?u=users/12")

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_pass 127.0.0.1:9000;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME
$document_root$fastcgi_script_name;
                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

St.



More information about the nginx mailing list