Trailing slash rewrite help

Kurt Hansen khansen at
Sat Jul 18 09:28:12 MSD 2009


I'm using nginx as a reverse proxy to a mod_perl backend server and am 
having trouble with my rewrite rule in the case of a missing trailing 
slash on a subdirectory.

For example, I want mapped to the example/action/ directory on the 
mod_perl server.

However, what happens is that is mapped to 

Here are  the relevant location directives where the rewrite is done:

     location /example/ {
        # root   html;
        index  index.htm;

        rewrite  ^/example(.*)/$ /example/$1/index.htm break;

        proxy_redirect off;
        proxy_pass http://cweb;

     location / {
        # root   html;
        index  index.htm;

        rewrite  ^/$ /example/index.htm break;

        rewrite  ^/(.*) /example/$1 break;

        proxy_pass http://cweb;

I think what is happening is that the rewrite comes out as 
/example/action then nginx adds the trailing slash and it gets run 
through the re-write again. I added the /example/ location directive so 
at least the right pages are displayed, but the URL comes back to the 
browser as

The nginx server is also an NFS server so the files reside on the nginx 
server. I've tried an if (-d $request_filename) but that doesn't work.

Any help would be greatly appreciated.


Kurt Hansen

More information about the nginx mailing list