Beginner's question: redirecting /dir/index.html to /dir/

Igor Sysoev igor at sysoev.ru
Mon Sep 13 12:22:52 MSD 2010


On Mon, Sep 13, 2010 at 03:46:55PM +1000, Splitice wrote:

> Location / would also work although server is probably better

No. If you request "/dir/" with the confuguration

     location / {
         rewrite ^(.*/)index.html http://$host$1 permanent;
         index   index.html;
     }

then nginx will do an internal redirect to "/dir/index.html".
If the redirect will be handled in the "location /", then
nginx will rewrite it to an external redirect "http://host/dir/".
And so on.

In this configuration:

     rewrite ^(.*/)index.html http://$host$1 permanent;

     location / {
         index   index.html;
     }

nginx will not run the server level rewrite, after the internal redrect,
so there will not be the loop.

> Sent from my iPod
> 
> On 13/09/2010, at 4:09 AM, Igor Sysoev <igor at sysoev.ru> wrote:
> 
> > On Sun, Sep 12, 2010 at 12:13:11PM -0400, ez77 wrote:
> >
> >>> rewrite ^(.*/)index.html http://$host$1 permanent;
> >>
> >> Hi Mat,
> >>
> >> I like your proposal better, which looks more elegant without the if
> >> clause, but I don't know where to include it. Under location / I  
> >> get a
> >> redirect loop.
> >
> > You should set it on server level.
> >
> >
> > -- 
> > Igor Sysoev
> > http://sysoev.ru/en/
> >
> > _______________________________________________
> > nginx mailing list
> > nginx at nginx.org
> > http://nginx.org/mailman/listinfo/nginx
> 
> _______________________________________________
> nginx mailing list
> nginx at nginx.org
> http://nginx.org/mailman/listinfo/nginx

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



More information about the nginx mailing list