【问题标题】:How to disable HTTPS and redirect HTTPS to HTTP in Wordpress?如何在 Wordpress 中禁用 HTTPS 并将 HTTPS 重定向到 HTTP?
【发布时间】:2020-09-30 13:42:51
【问题描述】:

客户端只是想测试站点而不将域指向新服务器。我们只想在 port80 (HTTP) 中测试站点,因为他们还没有购买 SSL。

所以网站设置在http://<ip-address>,我们正在使用ip进行测试。

但问题是,所有主题(css/js 文件)都是通过 HTTPS 加载的。我们需要禁用它并仅通过 HTTP 加载这些文件。

到目前为止我尝试过的对我不起作用的方法

  1. htaccess
       RewriteEngine On
       RewriteCond %{HTTP} !=on
       RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
  1. _wp_options 表

  1. wp-config.php

    define('FORCE_SSL_ADMIN', true);

  1. 常规设置

但不幸的是,这不起作用。

问题是所有 css 都是在 HTTPS 中加载的,但是当您尝试使用 http 在浏览器中搜索时,这些文件仍然存在

【问题讨论】:

  • 您是否更改了 wp_config 中的以下内容?定义('WP_SITEURL','example.com');定义('WP_HOME', 'example.com');
  • @Usman - 是的,确实尝试过,但 css 文件仍然加载到 https
  • @wp78de - 我的常规设置和站点地址已经是 http,但 css 文件仍然在 https 中加载
  • 请检查我的更新
  • 您可能需要在源中找到通过 https:// 链接的资产并手动更新它们。

标签: php wordpress


【解决方案1】:

有很多事情可能会导致这种情况,因此您可以尝试很多事情 - 我在下面列出了我能想到的所有事情。你已经做了一些,但为了完整起见,我将它们包括在这里,以防其他人正在搜索相同的问题。


1.在 wp-config.php 中设置 WP_CONTENT_URL

您的 WP_CONTENT_URL 可能正在使用 HTTPS。由于问题在于包含您的主题文件,因此我建议您首先检查一下。

尝试将其添加到 wp-config.php 以强制网站在包含 wp-content 文件夹时使用 HTTP:

define( 'WP_CONTENT_URL', 'http://www.www.example.com/wp-content' );

2。在 wp-config.php 中设置 WP_HOME 和 WP_SITEURL

在 wp-config.php 中设置 WP_HOMEWP_SITEURL 以使用 HTTP。 这将覆盖 WP 设置中设置的任何内容

define('WP_HOME','http://www.example.com');
define('WP_SITEURL','http://www.example.com');

您还可以通过查询 wp_options 表并查找 siteurl 和 home 值来确认数据库中的值,正如您已经尝试过的那样。


3.将 HTTPS 重定向到 .htaccess 中的 HTTP

我知道您已经完成了这项工作,但您可以通过检查 HTTPS on 而不是 HTTP 是否为 not off 来尝试。 (另请注意 - 302 重定向,因为这不是永久性的!)

RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=302,NE] 

4. WP 数据库中的硬编码 URL

WP 将完整的 URL 写入数据库,因此数据库中可能存在使用 HTTPS 的 url 实例。您可以直接在数据库中检查每个表,但我发现“更好的搜索替换”插件更快更容易使用。您可以进行“试运行”来搜索“https://www.example.com”的实例。如果找到,您可以使用插件将它们全部替换(但与往常一样,请确保在直接对您的数据库进行任何更改之前先进行数据库备份!!)

Better Search Replace plugin on wordpress.org


5.插件

某些插件可能会尝试强制使用 SSL。有很明显的,比如真正简单的 SSL,但其他插件也可以做到这一点,例如安全和优化插件 - 我知道 iThemes Security 可以。

如果一切都失败了,请尝试禁用插件进行检查。


6.主题文件或插件文件中的硬编码 URL

商业主题和插件不太可能,但 HTTPS 可能被硬编码到主题文件中。进行完整搜索或尝试禁用插件并将主题更改为默认 WP 主题以进行检查。


7.缓存

您的浏览器、服务器、缓存插件、最小化插件(用于 CSS 和 JS)可能在缓存中有 HTTPS(在您的情况下不太可能,但我还是会提到它)。甚至其他不太明显的插件也可以有缓存,例如画廊插件。

清除所有缓存,包括浏览器,关闭缓存插件等

您也可以尝试添加此尝试将以下内容添加到 wp-config.php

define( 'WP_CACHE', false );

8.管理员

确保您没有为管理区域强制使用 SSL - 在 wp-config.php 中添加/更改以下行

define('FORCE_SSL_ADMIN', false);

由于类似的原因,我遇到了这个问题,如果前 4 个步骤不起作用,我发现它通常是缓存问题。

希望对您有所帮助,您可以尝试很多方法,如果不能解决问题,我就没有主意了!!

【讨论】:

    【解决方案2】:

    要在 wp-config.php 中检查的更多变量是:

    define( 'FORCE_SSL_LOGIN', true );
    
    // WPEngine specific
    define( 'WPE_FORCE_SSL_LOGIN', true );
    

    【讨论】:

    • 这个答案似乎特定于 WP Engine,而不是一般的 WordPress。
    • 更新了答案以避免混淆。
    【解决方案3】:

    所有信息都很有用,但FORCE_SSL_ADMIN 选项的位置很重要(我最初将它放在wp-config.php 的末尾,但它对我不起作用):

    在 WordPress 网站上启用/禁用 SSL 管理

    您可以通过将此行添加/更改到您的wp-config.php 文件(位于您的 WP 主目录中)来做到这一点:

    • 为管理员启用 SSL
    define('FORCE_SSL_ADMIN', true);
    
    • 为管理员禁用 SSL
    define('FORCE_SSL_ADMIN', false);
    

    在行前添加 - 重要

    /* That's all, stop editing! Happy blogging. */
    

    进行这些更改后,您的网站将通过 SSL 运行。当然,如果您想禁用 SSL,您需要恢复更改。

    来源:

    https://www.pixelemu.com/documentation/wordpress-tutorials/how-to-enable-disable-ssl

    【讨论】:

      猜你喜欢
      • 2018-05-17
      • 2016-09-01
      • 2015-10-27
      • 1970-01-01
      • 2018-05-23
      • 2014-06-11
      • 1970-01-01
      • 2016-05-04
      • 1970-01-01
      相关资源
      最近更新 更多