新版本Nginx导致Wordpress,Drupal等框架无限重定向解决方案

服务器配置是前端用Nginx,后端用">Apache解析PHP。

从老版本的Nginx升级到新版本(>1.0)以后,发现Wordpress建立的站点都出现无限循环重定向问题。Google搜索,发现很多人遇到这个问题,并不是单纯Wordpress,Drupal, PHPCake等框架也都遇到同样的问题。
wordpress的解决方案是 安装禁止重定向的插件就可以了,但是缺陷是,这样会不利于SEO。并且这个解决方案不是对各个框架的通用解决方案,如果不搞清楚问题的原因,其他网站遇到同样的问题怎么办?可惜经过搜索,遇到这个问题的讨论都没有揭露最终的原因。还是决定自己跟踪Wordpress的源代码,看看问题究竟出在哪里。 为什么老版本的Nginx没有问题,新版本的就出现了这个问题?

跟踪wp-includes/canonical.php的代码,会发现,当使用新版本Nginx的时候,访问网站主页http://www.ithov.com/的时候,在Apache这端收到的请求是 http://www.ithov.com/index.php。而当使用老版本Nginx的时候,Apache端收到的请求是 http://www.ithov.com/。也就是说,新版本的Nginx在收到 http://www.ithov.com/请求以后,发送给后台的Apache之前,在后面自动追加了 index.php,导致与原来的请求URL不同,所以造成很多web框架重定向。

解决方案是:
在配置Nginx服务器的时候,注意单独配置location = / 这一项。

server {
listen 80;
server_name ithov.com, www.ithov.com;

//!!! 注意这里,重点配置这里的代理规则
location = / {
proxy_pass http://127.0.0.1:81/; // !!! 这一这里,最后面有个/不能省略
include /etc/nginx/proxy.conf;
}

location ~ \.php$ {
proxy_pass http://127.0.0.1:81; //!!! 这里,最后面没有/
include /etc/nginx/proxy.conf;
}

…..

}

时间: 2024-10-25 11:43:22

新版本Nginx导致Wordpress,Drupal等框架无限重定向解决方案的相关文章

开源程序nginx重写规则/CI/yii/CakePHP/Symfony/wordpress/Drupal

CI nginx重写规则 server {  listen 80;  server_name ttlsa.com www.ttlsa.com; root /data/site/www.ttlsa.com;  index index.php;  error_log log/error.log; # set expiration of assets to MAX for caching  location ~* .(ico|css|js|gif|jpe?g|png)(?[0-9]+)?$ {  ex

Nginx中WordPress后台404的问题的解决办法

唉经常重启机器看样子还是有好处的啊..顺便提下经常重启机器有什么好处呢,重启会检查硬件的--你懂的.. 这个是因为后台被重写导致的 WordPress官方肯定已经解决了,所以我们看一下官方的文档.    代码如下 复制代码 http://www.111cn.net /Nginx # Add trailing slash to */wp-admin requests. rewrite /wp-admin$ $scheme://$host$uri/ permanent; 就是简单地加一行斜杠重定向而

在Mac OS上部署Nginx和FastCGI以及Flask框架的教程

  这篇文章主要介绍了在Mac OS上部署Nginx和FastCGI以及Flask框架的教程,Flask是Python下一个极简的web开放框架,需要的朋友可以参考下 最近在学习Flask,本文介绍一下如何部署Flask开发的应用,同时也学习一下Nginx的使用,这只是在Mac上的一个实验. 应用 这里使用的应用就是官方的文档中给出的Flaskr. 安装Nginx 使用HomeBrew安装Nginx: ? 1 $ brew install nginx HomeBrew会自动安装Nginx及其依赖

Nginx下WordPress伪静态设置教程

对于Apache和Nginx的对比网上也是一大堆了,这里就不再赘述,以后有机会详细讲解. 相信用Wordpress的博主们都会用到伪静态,伪静态的好处是对搜索引擎友好,看起来也好看. 用虚拟主机的用户大都是用Apache,Apache的伪静态Wordpress支持很好,几乎不用自己去编辑.喜爱折腾,喜爱独立博主们用VPS的还是很多的,Nginx在VPS中作为架设环境还是挺常见,但是用Nginx时Wordpress就变成瞎子一般,这里就怎样在Nginx下设置伪静态. 我们不需要了解怎样写伪静态,不

Google Fonts导致WordPress打开缓慢解决方法

Google Fonts导致WordPress 速度问题之原因 WordPress 自3.8+版本后加入了Google Fonts(别问我Google Fonts是什么了),然后捏,因为近期敏感周期(35号),天朝发威,谷歌的一系列网站被彻底墙,包括Google Fonts 所在的googleapis.com .所以,如果是在登陆状态下打开你的WordPress 站点,会非常慢,因为压根儿加载不了这个字体文件.如果是非登陆状态且你的主题不是老外的主题,一般来说都是正常的. 解决方法 出来问题就要

Nginx中wordpress伪静态规则配置

因为与apache规则有一些不一样,所以我们不能直接使用apache的wordpress规则了. 费话不说多直接上代码  代码如下 复制代码 [root@localhost ~]# cat /etc/nginx/wprw.conf rewrite ^.*/files/(.*)$ /wp-includes/ms-files.php?file=$1 last; if (!-e $request_filename) { rewrite ^.+?(/wp-.*) $1 last; rewrite ^.+

如何解决wordpress管理后台产生过多重定向问题

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 关于wordpress管理后台出现产生过多重定向问题,笔者昨天第一次遇到.具体表现是管理员及用户无法登录后台,貌似出现了无限循环或根本无法跳转.我们都知道在用户没有登录的时候,你输入登录如你的域名/wp-admin或wp-login.php时,只有用户名和密码正确,就会重定向到worpress后台(默认情况下),但是笔者接触到一个网站的情况是

《PDF.NE数据框架常见问题及解决方案-初》

                                                        <PDF.NE数据框架常见问题及解决方案-初> 1.新增数据库后,获取标识列的值:    解决方案:    PDF.NET数据框架,已经为我们考略了很多,因为用PDF.NET进行数据的添加操作时,一般我们会传递Model实体进去,             在进行数据库的新增操作时,执行成功后,新增记录的标示又会赋值给传递的实体,例如:              ///<summ

DWZ (JUI) 教程 dwz框架 刷新dialog解决方案

原文:DWZ (JUI) 教程 dwz框架 刷新dialog解决方案 在DWZ中进行ajax表单提交后,通过回调函数来返回状态结果,以及返回是否需要刷新父页的navTabId.       DWZ给我们提供了两个回调函数,一个是子窗口为navTab的navTabAjaxDone,一个是子窗口为dialog的dialogAjaxDone,但这两个回调函数都有同一样的缺陷:就是父窗口必须是navTab,也就是说只能刷新navTab,如果父窗口为dialog,则此父dialog是刷新不了的.