清漆总是301重定向

时间:2017-04-09 11:32:19

标签: wordpress apache varnish varnish-vcl

我在端口90上运行了一个运行wordpress的apache。我已经在它前面放了一个清漆缓存,并在端口80上运行清漆。

我在这里使用4.0 vcl:https://github.com/nicolargo/varnish-nginx-wordpress/blob/master/varnish/varnish4-wordpress

当我申请我的网站时:80我将301重定向到:90 ...当然,这不是清漆点?我该如何避免这种情况并坚持下去:80 ??

我是varnish / vcl的新手,所以我很遗憾不知道该找什么。我确定它在VCL中虽然:)

相关帖子(但此处未回答):Why is Varnish redirecting as 301?

1 个答案:

答案 0 :(得分:1)

肯定不是在VCL。但是,请注意,从提供的default.vcl开始构建,逐位添加,以了解它是如何工作的更好。

至于为什么它没有工作以及修复它的方法。

不同的端口(duh)。

选项#1。告诉你的PHP真正的端口是什么

也许, 最简单的解决方法是编辑wp-config.php并告诉Wordpress请求的真正来源。在<?php

之后立即添加到文件顶部
$_SERVER['SERVER_PORT'] = 80;

选项#2。只需使用相同的端口。

您实际上可以在Varnish和Apache中使用相同的端口号(!)。只需将Varnish和Apache绑定到不同的接口,但相同的端口号。对于Linux机器,这些是不同的端口,使用相同的端口号没有问题。

所以Apache会有:

Listen 127.0.0.1:80

VCL中将有Varn:

backend default {
    .host = "127.0.0.1";
    .port = "80";
}

选项#3。不要使用Apache。 Nginx救援。

一个不太容易解决的问题可能是切换到Nginx,它可以很容易地绕过重定向中的端口&#34;问题只需一行配置:

port_in_redirect off;

Wordpress基本网址。

如果Wordpress站点URL(在wp-admin中)设置为包含端口号,那么它自然会重定向您的位置。 Wordpress站点URL中不应存在端口号。

额外提示:Fix Wordpress Jetpack in Varnish