Multisite behind Varnish

时间:2011-02-08 作者:Vid Luther

我正在尝试将varnish与wp 3.0.5网站(Multisite)一起使用,当我访问varnish URL时,我收到以下消息:

Multisite only works without the port number in the URL.
我是否需要自定义VCL来实现此功能?我正在为其他工作正常的wordpress站点使用相同的后端配置。。

如果我需要在serverfault上询问此问题,请告诉我,我会在那里询问。

2 个回复
最合适的回答,由SO网友:webXL 整理而成

我在这里找到了一个补丁:http://core.trac.wordpress.org/ticket/15936

您基本上需要修改wp includes/ms设置。php如下(删除“-”行;添加“+”行):

@@ -26,18 +26,8 @@
  if ( !isset( $current_site ) || !isset( $current_blog ) ) {
+        $_SERVER[\'HTTP_HOST\'] = preg_replace( \'|:\\d+$|\', \'\', $_SERVER[\'HTTP_HOST\'] );
         $domain = addslashes( $_SERVER[\'HTTP_HOST\'] );
-        if ( false !== strpos( $domain, \':\' ) ) {
-               ....
-                        wp_die( /*WP_I18N_NO_PORT_NUMBER*/\'Multisite only works without the port number in the URL.\'/*/WP_I18N_NO_PORT_NUMBER*/ );
-                }
-        }

SO网友:hakre

Wordpress的错误消息可能具有误导性。

Wordpress在中查找域名$_SERVER[\'HTTP_HOST\'] (PHP Manual) 如果它包含端口号(用:像往常一样分隔http://example.com:444/) 它只接受两种变体:端口80和端口443。

我假设在varnish配置中提供了其他端口,因此您会遇到这个端口。

我对清漆不是很在行,但这就是我要开始修补的地方。首先,我将输出该值。有问题的文件是/wp-includes/ms-settings.php, ~ 第38行。您可以开始添加var_dump($_SERVER[\'HTTP_HOST\']); 在wp\\U die语句之前。

结束

相关推荐

导入到WordPress MultiSite时禁用HTML过滤

我正在迁移到WordPress多站点实例的许多站点都在帖子中嵌入了视频和iFrame。我宁愿禁用WordPress功能,在导入时去掉嵌入的内容,而不是将每篇文章转换为犹太教式的视频嵌入方式。编辑帖子时禁用剥离是as simple as disabling the kses filter. 不幸的是,我不知道导入帖子需要禁用什么。目前我怀疑wp\\u insert\\u post()方法,但没有缩小过滤器的范围。有什么想法吗?Update: 这是特定于WordPress Multisite的。导入到单个Wo