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

Michael Shadle mike503 at gmail.com
Tue Oct 27 07:30:58 MSK 2009


Okay I'm trying to request

http://dev.foo.com/login for example, I get this:

2009/10/26 21:29:04 [error] 22831#0: *1 open()
"/home/mike/web/foo.com/loader.php/login" failed (20: Not a
directory), client: 192.168.1.2, server: dev.foo.com, request: "GET
/login HTTP/1.1", host: "dev.foo.com"

Here's the server block... I tried following your instructions.

   server {
      listen 80;
      server_name dev.foo.com;
      root /home/mike/web/foo.com;
      index index.php index.html;
      location ~ \.php$ {
         fastcgi_pass 127.0.0.1:11000;
      }
      location / {
         try_files $uri $uri/ /loader.php$uri;
      }
      location /loader.php {
         fastcgi_split_path_info ^(/loader\.php)(.*)$;
      }
   }



2009/10/26 Igor Sysoev <is at rambler-co.ru>:
> 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