【问题标题】:Setting default Wordpress in https:// and redirecting it to http:// and forwarding http:// to https:// in Cloudflare在 https:// 中设置默认 Wordpress 并将其重定向到 http:// 并在 Cloudflare 中将 http:// 转发到 https://
【发布时间】:2016-05-04 01:45:43
【问题描述】:
  • 之前我已将我的默认 Wordpress 安装设置为 http:// 并在 Cloudflare 中将其重定向以使用 Https SSL,但在浏览器上出现了几个 混合内容错误 [说明 https 请求是http]。

  • 所以,全新安装了我的整个 wordpress 以使用 https:// 但我在没有安装 SSL 证书的共享服务器上,所以现在我的整个站点重定向到 https:// 并显示 [未找到服务器错误]。

  • 我只需要将我的 wordpress 保存在 https:// 中,以便使用站点地图和其他插件来仅访问 https:// 而不会发生冲突。

- 那么,我是否需要将 .htaccess 文件中的所有 https:// 重定向到 http://,然后将 http:// 重定向到 cloudflare 以使用 https://,并作为我的默认安装的 Wordpress 为 https://

  • 在 .htaccess 中使用了几个规则但无济于事,请告诉我将所有 http:// 重定向到 https:// 的确切规则

    RewriteCond %{SERVER_PORT} ^443$ 重写规则 ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]

    RewriteCond %{HTTPS} on
    RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    
    
    #RewriteEngine On
    RewriteCond %{SERVER_PORT} 443
    RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    

【问题讨论】:

    标签: php wordpress .htaccess redirect ssl


    【解决方案1】:

    如果您的服务器不侦听 443 端口,您就不能以这种方式重定向它们。

    如果只有无效证书,重定向时总会出现“无效证书”错误。但它应该像这样工作:

    RewriteEngine On
    RewriteCond %{HTTPS} on
    RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI}
    

    您应该尝试获取有效的证书。 https://letsencrypt.org/https://www.startssl.com/ 是免费开始的好方法。

    【讨论】:

    • 感谢 Kneecht.. 但是不允许在我的共享服务器主机上安装 Ssl :( 有什么替代方法可以使用 https?
    • 您可以尝试以下方法:RewriteCond %{HTTP:CF-Visitor} '"scheme":"http"' RewriteRule ^(.*)$ https://www.domain.com/$1 [L] 有关详细信息,请参阅gomah.fr/server-tips/…。但请注意,CloudFlare 的灵活 SSL 从来都不是安全的,你只是“欺骗”了用户。
    • 这条规则有效,但是 https:// 没有重定向或挂锁指向 :( RewriteCond %{HTTP_HOST} ^reviewsanswers\.com$ [NC] RewriteRule ^(.*)$ reviewsanswers.com/$1 [ R=301,L]
    • 现在您只需重写 reviewanswers.com,而不是 www.reviewanswers.com。这就是您的 JS / CSS 未加载的原因。顺便说一句,您应该尝试加载您的 CSS / JS,例如 //example.com/style.css
    【解决方案2】:

    你解决了这个问题吗?也许您需要将其添加到您的 wp-config.php

    $_SERVER['HTTP_HOST'] = $_SERVER['HTTP_X_FORWARDED_HOST'];
    $_SERVER['HTTPS']='on';
    

    它告诉您的 wordpress 虚拟机使用 wordpress 服务器上的 (cloudflare) 主机名。如果 SSL 由 cloudflare 完成,这可以工作,因为 LoadBalance 后面的流量是非 SSL 流量。但我根本不知道 Cloudflare 的详细信息;)

    另外,您需要将 wordpress homeurl 和 siteurl 设置为您的用户应该看到的 https 域。

    【讨论】:

      猜你喜欢
      • 2020-09-30
      • 1970-01-01
      • 1970-01-01
      • 2018-05-17
      • 1970-01-01
      • 1970-01-01
      • 2015-12-27
      • 2015-10-27
      • 2020-03-06
      相关资源
      最近更新 更多