Nginx上的WordPress-缺少管理员/工具栏

时间:2013-09-11 作者:vpsnewbie

嗨,我想弄明白这一点已经有一段时间了,但不管我做什么,似乎都没用。

我有一个使用WordPress multisite运行Nginx+Varnish的VPS设置。

浏览网站时,除了管理/工具栏外,其他一切都正常工作。它根本无法加载。它在管理区域加载,但在查看站点时不会加载。

我已经检查了“查看网站时显示工具栏”,并且我已经停用了所有插件。

现在,我甚至已经创建了一个全新的WP安装,只运行默认的东西,只是为了看看它是否有效,但仍然无法显示。

我检查了源代码,奇怪的是,“#wpadminbar”不存在!但由于这是默认主题,所以每段代码看起来都很好-wp_head &;wp_footer 正确放置。

我现在的猜测是,这更像是一个服务器问题,可能是Nginx或Varnish问题?

我希望有人能帮我解决这个问题。。。

-豪伊

2 个回复
SO网友:Michael Thompson

如果您使用的是Varnish,而没有看到管理栏,那是因为您可能在/etc/varnish/default.vcl 看起来是这样的:

sub vcl_recv {
    if (!(req.url ~ "wp-(login|admin)")) {
        unset req.http.cookie;
    }
}
这将阻止管理栏出现,因为除了匹配的页面外,您正在从所有页面删除cookie内容wp-(login|admin). 作为测试,请尝试删除此项并加载您的站点。如果出现管理栏,则需要调整Varnish规则。

有几种不同的处理方式,而且各不相同。您可以检查特定的cookie名称、URL字符串等。

SO网友:Abby Fichtner

我也遇到了同样的问题,所以我更新了/etc/varnish/default。vcl到这一点-很难说我现在是否允许了太多的cookie(?我可能只在登台而不是生产时使用它),但它让我重新获得了工具栏!

# Drop any unnecessary cookies sent to Wordpress.
sub vcl_recv {
   // pages that require cookies
   if ((req.url ~ "^/sqlstuff") || (req.url ~ "wp-(login|admin)")) {
       return (pass);
   }

   // unset any cookies we don\'t want to keep
   if (req.http.cookie && !(req.http.cookie ~ "(wordpress_|wp-settings-)")) {
       unset req.http.cookie;
   }
}

# Drop any unnecessary cookies Wordpress tries to send back to the client.
sub vcl_fetch {
   // pages that require cookies
   if ((req.url ~ "^/sqlstuff") || (req.url ~ "wp-(login|admin)")) {
       return (hit_for_pass);
   }

   // unset any cookies we don\'t want to keep
   if (req.http.cookie && !(req.http.cookie ~ "(wordpress_|wp-settings-)")) {
       unset beresp.http.set-cookie;
   }
}

结束

相关推荐

在WordPress MultiSite的主主页中显示来自内部博客的自定义字段

我使用wordpress MU网络,我有主网站和所有内部博客。人们可能知道,在wordpress MU中,很难在主站点和内部博客之间建立“关系”。遗憾的是,关于wordpress MU的信息和来源也不够。(同时发布this 问题,但没有人回答)无论如何,为了在主站点主页中显示内部博客中的一些值,我必须使用以下插件:http://wordpress.org/plugins/wordpress-mu-sitewide-tags/这项工作做得很好,但并不完美。无论如何,我要做的是创建一个简单的自定义字段,在一个