我正在尝试将Varnish与WP 3.0.5网站一起使用Network(MultIte),当我访问清漆URL时,我会收到此消息:

Multisite only works without the port number in the URL.

我需要自定义VCL来制作这项工作吗?我在其他WordPress网站上使用相同的后端配置,可以正常工作。

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

有帮助吗?

解决方案

我在这里找到了一个修复程序: http://core.trac.wordpress.org/ticket/15936

基本上,您需要修改WP-INCLUDES/MS-SETTINGS.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*/ );
-                }
-        }

其他提示

该WordPress错误消息可能会误导。

WordPress在 $_SERVER['HTTP_HOST'] (PHP手册) 如果它包含一个端口号(与往常一样分开: http://example.com:444/)它将仅接受两个变体:端口80 A端口443。

我认为在您的清漆配置中给出了其他端口,因此您会撞到该端口。

我不是Varnish的专家,但这就是我开始修改的地方。首先,我会输出该值。有问题的文件是 /wp-includes/ms-settings.php, ,〜行38.您可以开始添加一个 var_dump($_SERVER['HTTP_HOST']); 在WP_DIE语句之前。

许可以下: CC-BY-SA归因
scroll top