another rewrite/try files issue

brianmercer nginx-forum at nginx.us
Mon May 23 02:06:01 MSD 2011


Stelianos G. Sfakianakis Wrote:
-------------------------------------------------------
> 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.
> 
> _______________________________________________
> nginx mailing list
> nginx at nginx.org
> http://nginx.org/mailman/listinfo/nginx

Possibly this:

location /myapp/ {
  root /home/stelios;
  try_files $uri @fallback;
}

# and the "default" PHP/FastCGI
location @fallback {
  fastcgi_pass 127.0.0.1:9000;
  fastcgi_param SCRIPT_FILENAME /home/stelios/myapp/index.php;
  include fastcgi_params;
}

Posted at Nginx Forum: http://forum.nginx.org/read.php?2,199965,199970#msg-199970




More information about the nginx mailing list