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

Igor Sysoev is at
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

More information about the nginx mailing list