PDA

查看完整版本 : Linux Nginx访问域名或目录链接后无/(反斜杠)无法访问的解决方法


Tony
2011-07-13, 10:13 PM
Nginx安装配置完成之后,会出现访问域名或目录型链接后出错无法访问的情况。如果要访问的链接为


1http://192.168.2.100/path


在IE下用httpwatch监测会发现输入请求后做了1次301转向,然后请求的地址变为:


1http://localhost/path/


也就是说,这个时候请求变成了用户端本机地址,所以会导致用户无法访问!这个现象在firefox火狐下更加明显,会在地址栏直接显示出http://localhost/path/
要解决这个问题,需要对Nginx的配置做一个小小的修正,在相应的server中增加一条rewrite规则,判断当访问的是服务器的目录时,则自动在链接后面增加 /(反斜杠) ,请看如下修改:


1if (-d $request_filename){ rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent; }