2013年9月10日星期二

解决nginx下目录不加斜杠导致的路径错误问题

lnmp默认会把不带/的当成页面,不是目录;如果是目录就得加/

像之前这样的问题:http://www.fengxy.org/phpmyamin-error.html 都是因为nginx访问上当不加/导致的。

下面以wordpress  admin后台为例,说一下解决方法:

1、登录shell,vim编辑Nginx配置目录(一般是在/usr/local/nginx/conf/)下的"wordpress.conf",当然如果你像我一样用的是自己写的conf文件,那就改对应的那个重定向配置文件就好。

vim /usr/local/nginx/conf/wordpress.conf

2、把官方给的那一行加到文件最后面就行了

location /blog/ {
if ($host != 'www.slyar.com' ) {
rewrite ^/(.*)$ http://www.slyar.com/$1 permanent;
}
if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
rewrite (.*) /blog/index.php;
}
}

rewrite /wp-admin$ $scheme://$host$uri/ permanent;

像之前phpmyadmin的问题,把路径改一下就行了:

rewrite /phpmyadmin$ $scheme://$host$uri/ permanent;

3、:wq保存重启nginx即可

Ps.其实你要是懒的话,直接用 "echo >>" 追加就行了= =

echo 'rewrite /wp-admin$ $scheme://$host$uri/ permanent;' >> /usr/local/nginx/conf/wordpress.conf

/etc/init.d/nginx restart

 

在网上还找到一种方法,貌似到处都转载得有,可是在我的VPS上没有起作用,仅作参考:

在nginx.conf中

http{
...
server_name_in_redirect off;   //自动添加斜线”/”语句
...
}

没有评论:

发表评论