Requests ending with / (slash) are returning 404

Leonardo Crespo leo at leocrespo.com
Wed Apr 7 12:24:36 MSD 2010


Hi all!

Can anyone with more experience give me hand? I've spent the last 4
hours trying many options and none of them worked, so I decided to ask
for help.

What i'm trying to do:
/foo/bar/page  served by  /foo/bar/page.php

This one is working fine, as I can remove the.php extension from the
request and the page loads o (www.domain.com/page shows the content of
www.domain.com/page.php)

However, requests ending in a / (slash) are not working
/foo/bar/ served by /foo/bar/index.php
(www.domain.com/portal/ should show the content of
www.domain.com/portal/index.php)

I can't get this to work properly no matter what. I've tried if
conditions for the $request_uri, different location groups, flags for
the rewrite option and sadly i can't get it to work.

Can anyone with more experience give me a hand? Here's my conf file (snippet)


============
server
{
    listen   80;
    server_name www.domain.com.au;
    access_log /home/public_html/domain.com.au/log/access.log;
    error_log /home/public_html/domain.com.au/log/error.log error;
    root /home/public_html/domain.com.au/public;

    #file size
    client_max_body_size 100m;

    location = /
    {
        root   /home/public_html/domain.com.au/public/;
        index  index.php index.html;
    }

    location /
    {
        root   /home/public_html/domain.com.au/public/;
        index  index.php index.html;
        ####### ---- allows /foo/bar/page to /foo/bar/page.php
        rewrite ^([^.?]+)$ $request_uri.php last;
    }

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    location ~ \.php$
    {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_intercept_errors on;
        fastcgi_index index.php;
        include /usr/local/nginx/conf/fastcgi_params;
        fastcgi_param SCRIPT_FILENAME
/home/public_html/domain.com.au/public/$fastcgi_script_name;
    }
}
============



More information about the nginx mailing list