当前位置: 首页 > 知识库问答 >
问题:

反向代理背后的WordPress:Safari中未设置会话cookie

别开诚
2023-03-14

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

httpd。维奥斯特。形态:

<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_重定向)时,我会被重定向到登录页面,因为wordpress显然没有找到/接受会话cookie,并且操作没有完成。

因此,我增加了这一行:

    ProxyPassReverseCookiePath / http://192.168.101.11/blog/

(请参阅Apache代理cookies仅适用于第一个应用程序)

这似乎解决了问题。然而,我现在已经注意到,在这个设置下,登录根本不起作用,只在Safari和IE中起作用(在Opera、Firefox和Chrome中效果很好)。我刚刚被重新定向到登录页面。

一些补充信息:

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

可湿性粉剂配置。php

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

共有2个答案

丁翰海
2023-03-14

ProxyPassReverseCookiePath执行cookie的path属性的转换。此属性只包含一个路径,因此向指令传递完整的URL将不起作用。我不知道为什么它没有工作为您没有ProxyPassReverseCookiePath指令,但我假设Wordpress不尊重你设置的COOKIEPATH

正确的配置应为:

ProxyPassReverseCookiePath /blog/ /
ProxyPassReverseCookieDomain 192.168.101.11 .blog.domain.com

这将转换Cookie的路径,从而使您在wp config中所做的设置生效。php已过时。

屠和洽
2023-03-14

解决了它:

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

ProxyPassReverseCookiePath http://192.168.101.11/blog http://blog.domain.com
 类似资料:
  • 我在服务器上安装了keycloak standanlone,并尝试通过Nginx在反向代理后面使用它。Keycloak绑定到127.0.0.1

  • 问题内容: 我将会话参数存储在Struts2会话映射中,该会话映射是使用SessionAware接口在操作中获得的。我的应用程序位于/ MyApp路径中。 在具有反向代理重定向的Apache服务器上设置struts2应用程序之后,该重定向使URL http://www.appdomain.com/ 指向本地 主机 上的本地tomcat :8080 / MyApp ,Struts2会话处理不再起作用

  • 我在谷歌上冲浪,没有找到任何具体的答案或例子,所以再次尝试我的运气在这里(经常是幸运的)。 问题所在 > 我在apache反向代理后面运行了一个spring boot RESTful服务。此RESTful服务只运行HTTP。假设它运行在本地IP172.S端口8080上。 我还配置了一个apache反向代理。假设它运行在本地IP172.a和公共IP55.a上。该代理响应两个端口80,但所有HTTP通

  • 我想在代理之后提供Restful API,但我不知道如何将请求重定向到Spring Boot应用程序,以便可以使用域名访问它。 我的Spring Boot应用程序使用spring-boot-starter-tomcat运行,应用程序部署良好,我可以在服务器上使用java-jar myApplication.jar部署它。 该应用程序还可以通过写入远程访问https://1.2.3.4:8090在浏

  • 我是新来的Spring Security,并试图开发Spring Boot应用程序与谷歌登录使用OAuth2下运行的主机名: 8080。这个程序是背后的Apache反向代理服务器https://url.com. Spring启动版本2.1。0 Spring Security版本5.1.1 build.gradle: 应用yml: Spring Security配置: 我请求https://url.

  • 我已经嵌入了在7000端口上运行的Jetty。另外,我有一个keycloak服务器运行在同一台机器的端口8100上。 我的所有客户端访问都通过Jetty进行,即localhost:7000。因此,我将keycloak作为Jetty上的反向代理,即localhost:7000/keycloak/auth将重定向到localhost:8100/auth。它击中正确。 现在,有KeycloakInsta