-
16-10-2019 - |
题
我正在尝试将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语句之前。