WordPress 背后的反向代理 : Session-cookies not set in Safari & IE

标签 wordpress apache safari session-cookies reverse-proxy

我有一个在反向代理 (Apache) 后面运行的 WordPress 博客。

httpd.vhosts.conf:

<VirtualHost  *:80>
    ServerName blog.domain.com:80
    ServerAlias www.blog.domain.com
    ProxyPass / http://192.168.101.11/blog/
    ProxyPassReverse / http://192.168.101.11/blog/
</VirtualHost>

博客工作正常,我可以以管理员身份登录,但是当尝试保存设置或删除插件(并且发生 wp_redirect )时,我被重定向到登录页面,因为 wordpress 显然没有找到/接受 session cookie,并且操作没有完成。

因此,我添加了这一行:

    ProxyPassReverseCookiePath / http://192.168.101.11/blog/

(参见 Apache proxy cookies works only with the first app )

这似乎解决了问题。 但是,我现在注意到,使用此设置,登录根本不起作用,但在 Safari 和 IE 中(在 Opera、Firefox、Chrome 中工作得很好)。我刚刚再次重定向到登录页面。

一些附加信息:

  • 管理部分的 session cookie 和 wordpress_test_cookie 根本不会在 Safari 中创建,仅创建像 "__uc*" 等(对于博客本身) 。如果没有 ProxyPassReverseCookiePath 条目,它们就会被创建。
  • 我激活了第三方网站的 Cookie(在两种浏览器中),但这并没有解决问题。
  • 我已经这样配置了 WP-cookie:

wp-config.php

define('COOKIE_DOMAIN', '.blog.domain.com');
define('COOKIEPATH', '/');
define('SITECOOKIEPATH', '/');
define('ADMIN_COOKIE_PATH', SITECOOKIEPATH . 'wp-admin' );

最佳答案

解决了:

我在 cookie 路径配置中犯了一个小错误。它必须是:

ProxyPassReverseCookiePath http://192.168.101.11/blog http://blog.domain.com

关于WordPress 背后的反向代理 : Session-cookies not set in Safari & IE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21575725/

相关文章:

javascript - Onclick 事件跟踪 Google Analytics Wordpress Visual Composer 插件

java - 无法将 Tomcat 与 solr 集成

java - Apache Camel 多线程处理

iphone - 强制在 Safari 而不是应用内浏览器中打开链接

SAFARI 的 PHP session 问题

css - Logo 未在桌面上显示,仅在平板电脑和手机上显示

php - "manual"Woocommerce 自定义订单状态的奇怪显示样式

apache - 使用 .htaccess 删除链接地址中的 ID 号

css - 我的测试站点只能在 Safari 和 Chrome 上运行,没有 IE 没有 Firefox,请帮助

javascript - 如何将此动态内容转换为 JavaScript 数组?