【问题标题】:Wordpress site serve to both http and https at the same time with different domainsWordpress 网站同时为 http 和 https 提供不同的域
【发布时间】:2018-11-16 01:45:26
【问题描述】:

我需要将我的 Wordpress 网站同时提供给 http://“特定域”和 https://“特定域”。我知道我可以像这样定义 wp 站点 url 和 wp 主页,

define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST']);

define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST']);

但在我的情况下,由于在我的域上安装 SSL 证书后 Wordpress 中的混合内容问题,我还需要加载 https://。实际上,我正在为用户使用带有 SSL 证书的 Cloudfront。

如果我进一步解释,Cloudfront 的原始网站与没有 SSL 的网站相同。比如,

Cloudfront 源站:

http://subdomain.maindomain.com/ 

用户访问网站:

https://www.maindomain.com/

因此,我需要使用具有 http 和 https 选项的同一个网站,其中包含两个不同的域,如前所述。希望有一个好的解决方案来解决这个问题。

【问题讨论】:

  • 我不相信你可以配置 wordpress 来做到这一点。过去,您可能会使用 .htaccess 将 http 请求重定向到 https 端点,但实际上您应该只对所有连接使用 https。具有 http 访问权限的子域的用例是什么?
  • 该子域是 AWS Cloudfront 的源站点。我从 AWS 获得 SSL 证书并通过 Cloudfront 集成 SSL。
  • 可以动态设置wp_siteurlwp_home。相关:stackoverflow.com/questions/26014426/…
  • 这已经完成了

标签: php wordpress ssl amazon-cloudfront


【解决方案1】:

自 2018 年以来,使用完全 https 工作流已经不仅仅是有效的——正确的形式,甚至是。此方法会将您现有的http 文件在本地重写为https,从而避免对服务器进行任何重大重组。所以这里的一个额外好处是,你可以告别任何“混合内容”问题。

如果您还没有.htaccess 文件,请在 html 根目录中创建一个。添加这些rewrite 行:

RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [L,NE,R=301]

如果您遇到任何问题,请告诉我。

【讨论】:

  • 感谢此代码。但不幸的是,这对我不起作用。我正在使用 Wordpress
  • 我的目的是在 AWS Cloudfront 前面提供 https 站点,而 Cloudfront 的来源是 http 站点。因此,网站同时表现为 http 网站和 https 网站。我的 SSL 证书是由亚马逊颁发的。所以我正在通过 AWS Cloudfront 集成 SSL 证书。希望你明白了。
  • @CodeCanyon 我不确定我是否明白这个想法。当我将浏览器指向任何 AWS Cloudfront 页面时,它上面都有https。无论您说什么,“Cloudfront 起源是 http 站点”。问题:如果您获取 URL,并手动添加“s”,使浏览器地址字段中的 http 变为 https,会发生什么情况?第二个问题:您是否使用任何特定的 WP“模板”?
【解决方案2】:

终于解决了问题。问题来自 Cloudfront。启用 cookie 和白名单标头后,问题就解决了。假设其他人会帮助解决这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-17
    • 1970-01-01
    • 2019-08-09
    • 2011-05-06
    • 1970-01-01
    • 2019-03-06
    • 1970-01-01
    • 2012-12-05
    相关资源
    最近更新 更多