如何构建 wordpress 页面中的资产链接?移动到 docker 后,我得到的是 http 而不是 https
How do asset links in wordpress page get built? I get http rather that https after moving to docker
我支持移动到 docker (docker-compose) 一个已经在 cPanel 中“正常”工作的 wordpress 网站。我说“正确”是因为“站点 url”和“wordpress 站点 url”都报告 http://
而不是 https
.
在 cPanel 设置中,您可以访问 http
或 https
以及任何内部 link 到 js
和 css
使用 https
。在移动到 traefik
负载平衡器后面的 docker 之后,我使用 http
获得了包含所有 link 的页面。这显然破坏了安全性,网站无法使用。
用于构建资产 link 的机制是什么?它是否使用一些可以不同设置的变量?我的 docker 有 apache,我正在使用相同的 .htaccess(至少我正在使用 cPanel 备份中的内容...)。
如果我强制 https
,/wp-admin
变得无法访问...目前 traefik 提供使用 http
和 https
.
请求的正确资源
编辑:添加
$_SERVER['HTTPS']='on';
define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);
确实 将大多数内部 link 转为 https,但 /wp-admin
变得无法访问(“您不允许访问该页面”)。例如,它通过 http.
加载 /wp-includes/js/jquery/jquery.js
为什么
任何提示表示赞赏...
在您的 wordpress 中,一般设置将站点的 url 和 wordpress 的 url 都传递给 https,然后您将不得不使用插件或从它的 htaccess 强制执行资产后仅使用 https 加载,其他文件应在 https
中加载
我使用 ngrok 隧道连接到我的 localhost
,我能够成功 运行 我的环境超过代理 https
的唯一方法是转换 wordpress 永久链接 url 相对 url 使用...
https://wordpress.org/plugins/relative-url/
该插件已过时 2 年,但仍然可以正常工作,并允许我通过 https
隧道连接到 localhost
到 运行。便于 localhost
https
端点访问(无需强制在 wp-config.php 中定义 home/urls)
我通过重新排列 wp-config.php
中的设置顺序解决了这个问题。
wp-configi.php
不仅仅是一个配置文件,顾名思义。您需要在最后一行之前设置_SERVER['HTTP']
:
$_SERVER["HTTPS"] = "on";
require_once(ABSPATH . 'wp-settings.php');
(感谢朋友 Dario 的帮助)
我支持移动到 docker (docker-compose) 一个已经在 cPanel 中“正常”工作的 wordpress 网站。我说“正确”是因为“站点 url”和“wordpress 站点 url”都报告 http://
而不是 https
.
在 cPanel 设置中,您可以访问 http
或 https
以及任何内部 link 到 js
和 css
使用 https
。在移动到 traefik
负载平衡器后面的 docker 之后,我使用 http
获得了包含所有 link 的页面。这显然破坏了安全性,网站无法使用。
用于构建资产 link 的机制是什么?它是否使用一些可以不同设置的变量?我的 docker 有 apache,我正在使用相同的 .htaccess(至少我正在使用 cPanel 备份中的内容...)。
如果我强制 https
,/wp-admin
变得无法访问...目前 traefik 提供使用 http
和 https
.
编辑:添加
$_SERVER['HTTPS']='on';
define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);
确实 将大多数内部 link 转为 https,但 /wp-admin
变得无法访问(“您不允许访问该页面”)。例如,它通过 http.
/wp-includes/js/jquery/jquery.js
为什么 任何提示表示赞赏...
在您的 wordpress 中,一般设置将站点的 url 和 wordpress 的 url 都传递给 https,然后您将不得不使用插件或从它的 htaccess 强制执行资产后仅使用 https 加载,其他文件应在 https
中加载我使用 ngrok 隧道连接到我的 localhost
,我能够成功 运行 我的环境超过代理 https
的唯一方法是转换 wordpress 永久链接 url 相对 url 使用...
https://wordpress.org/plugins/relative-url/
该插件已过时 2 年,但仍然可以正常工作,并允许我通过 https
隧道连接到 localhost
到 运行。便于 localhost
https
端点访问(无需强制在 wp-config.php 中定义 home/urls)
我通过重新排列 wp-config.php
中的设置顺序解决了这个问题。
wp-configi.php
不仅仅是一个配置文件,顾名思义。您需要在最后一行之前设置_SERVER['HTTP']
:
$_SERVER["HTTPS"] = "on";
require_once(ABSPATH . 'wp-settings.php');
(感谢朋友 Dario 的帮助)