Attempt to rewrite using slightly deprecated /foo.php/bar/ methods

Igor Sysoev is at rambler-co.ru
Mon Oct 26 14:10:42 MSK 2009


On Sun, Oct 25, 2009 at 09:23:02PM -0700, Michael Shadle wrote:

> I have a script which has aliases like /login and such. If the file
> does not exist, it's supposed to go to
> 
> /controller.php/login
> 
> Where controller.php will look up based on the URI and a whitelist of
> aliases and load the appropriate script. However when I try this:
> 
> if (!-e $request_filename) {
>   rewrite ^(.+)$ /controller.php/$uri last;
> }
> 
> I get an infinite loop.
> 
> Is there a way to setup some sort of rewrite (I also tried try_files)
> to make this behavior happen? I tried hacking the controller script
> but I'm worried changing it from URI parsing to a GET argument will
> mess up other internals of the script (it's a third party script)
> 
> Thanks... I've done this in Zeus and Apache before but apparently
> never tackled it in nginx yet.

   location / {
       # damned "if", neutral "error_page", or blessed "try_files" :)
   }

   location /controller.php {
       fastcgi_split_path_info     ^(/controller\.php)(.*)$;
       ...
   }


-- 
Igor Sysoev
http://sysoev.ru/en/





More information about the nginx mailing list