Rewrite help when files do NOT have a ".php" extension

pk899 nginx-forum at nginx.us
Wed Jun 1 18:32:00 MSD 2011


António P. P. Almeida Wrote:

> This won't work unless you have defined the name
> of the script that is
> to be executed by the upstream fastcgi process.
> 
> What is the name of the script that receives the u
> argument? get.php? index.php?




Oh I see. I had totally misunderstood how this works. 

The name of the script is "/site/get". Without the .php extension. 

And the uri should be passed as "?u=" and in some case there will be a
second variable "&sb=". The rewrite rules will work this way: 

#--------------
    location / {
      rewrite   ^/([-~a-zA-Z0-9_\.]+)(.+)$    /site/get?u=$1&sb=$2; 
      rewrite   ^/([-~a-zA-Z0-9_\.]+)$        /site/get?u=$1; 
    }
#--------------
    
So basically I can do the upstream bit this way? 

#--------------
          include         fastcgi_params;
          fastcgi_param   SCRIPT_FILENAME   $document_root$/site/get;
          fastcgi_param   PATH_TRANSLATED   $document_root$/site/get;
#--------------
 

Thanks for any ideas. (This is not working)

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




More information about the nginx mailing list