配置解决Nginx服务器中WordPress路径不自动加斜杠问题

 更新时间:2016年01月06日 11:47:57   作者:姜南  
这篇文章主要介绍了配置解决Nginx服务器中WordPress路径不自动加斜杠问题,nginx不会自动在请求的最后加上一个斜线的问题文中也有提到通用的规则改写方法,需要的朋友可以参考下

问题是这样的:我习惯在博客地址后面直接加"wp-admin"敲回车进入WordPress后台,但是进去以后发现不管我点任何一个管理子项,一律404(找不到页面),瞬间我就囧了,这是神马状况。。。

仔细看了一下管理子项的链接,发现他们全是类似"//www.jb51.net/blog/edit.php"这样的,关键就在于他们都少了"/wp-admin/"这条路径,路径都不对了,肯定404呗。。。

知道问题在哪就简单了,而且答案肯定还是在Nginx的重定向规则上,但是我不知道怎么改,但是我还知道WordPress官方肯定已经解决了,所以我还是很淡定地去查文档了。。。got it

http://codex.wordpress.org/Nginx

# Add trailing slash to */wp-admin requests.
rewrite /wp-admin$ $scheme://$host$uri/ permanent;

果然给我在codex上找到了解决方案,就是简单地加一行斜杠重定向而已,方法综述如下:

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

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

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

location /blog/ {
if ($host != 'www.jb51.net' ) {
rewrite ^/(.*)$ //www.jb51.net/$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;

3、:wq保存重启nginx即可

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

PS:据说 nginx不会自动在请求的最后加上一个斜线,不会自动判断请求的是一个文件还是一个目录。网上搜索 nginx 斜线,都会提到需要在请求的最后加上这个斜杠。

网上大部资料是这样写的 :

在nginx\conf\vhost.conf中的 location / {}的index  index.html后面加上

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


但如果你的网址后面带了端口的话,那么转向时还是会出现403错误。

即 $host 变量把端口弄没了,改成 $http_host 变量即可

改成如下写法即解决了所有问题

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

相关文章

  • 详解使用Nginx和uWSGI配置Python的web项目的方法

    详解使用Nginx和uWSGI配置Python的web项目的方法

    这篇文章主要介绍了使用Nginx和uWSGI配置Python的web项目的方法,与其他CGI连接方式相比uwsgi的连接性能也较为出众,需要的朋友可以参考下
    2015-12-12
  • nginx 开启 pathinfo的过程详解

    nginx 开启 pathinfo的过程详解

    这篇文章主要介绍了nginx 开启 pathinfo的过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • nginx代理webSocket链接,webSocket频繁断开重连方式

    nginx代理webSocket链接,webSocket频繁断开重连方式

    当使用Nginx代理WebSocket连接时,若60秒内无数据交互,连接会断开,解决办法包括增加proxy_read_timeout时长或在客户端添加心跳机制,以维持连接稳定
    2024-09-09
  • nginx 如何实现if嵌套的方法示例

    nginx 如何实现if嵌套的方法示例

    这篇文章主要介绍了nginx 如何实现if嵌套的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • Nginx配置文件中location配置的多种场景

    Nginx配置文件中location配置的多种场景

    location主要做定位功能,根据uri来进行不同的定位,下面这篇文章主要给大家介绍了关于Nginx配置文件中location配置的多种场景,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-09-09
  • CentOS7安装Nginx并配置自动启动的方法步骤

    CentOS7安装Nginx并配置自动启动的方法步骤

    这篇文章主要介绍了CentOS7安装Nginx并配置自动启动的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-10-10
  • 如何在nginx中配置缓存静态文件

    如何在nginx中配置缓存静态文件

    本篇文章主要介绍了如何在 nginx 中缓存静态文件配置,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • 详解Nginx中HTTP的keepalive相关配置

    详解Nginx中HTTP的keepalive相关配置

    这篇文章主要介绍了Nginx中HTTP的keepalive相关配置,以及Nginx的Httpd守护进程相关的keepalive timeout配置,需要的朋友可以参考下
    2016-01-01
  • Nginx配置统计流量带宽请求及记录实时请求状态的方法

    Nginx配置统计流量带宽请求及记录实时请求状态的方法

    这篇文章主要介绍了Nginx中配置统计流量带宽请求及记录实时请求状态的方法,分别用到了ngx_req_status和ngx_realtime_request模块,需要的朋友可以参考下
    2016-01-01
  • 前端必备Nginx配置详解

    前端必备Nginx配置详解

    这篇文章主要介绍了前端必备Nginx配置详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09

最新评论