当使用HTTPS时,WordPress不会将HTTPS用于css和js,并且admin不起作用。我该怎么解决这个问题?

时间:2019-02-03 作者:John Tippin

因此,我最近构建了和LAMP服务器,并在其上安装了wordpress。我使用serveo通过反向ssh隧道将其连接到web。网我决定添加ssl,网站的其他部分似乎运行良好,但当我尝试使用ssl时,wordpress不断崩溃。我转到了常规设置,将URL改为http而不是https,但当我加载页面时,在源代码中css和js URL使用http而不是https,因此它们不会加载。然后wp管理部分甚至不会加载。如何修复此问题?我看过很多关于有类似问题的人的帖子,但没有一篇对我有帮助。

4 个回复
SO网友:Rick Hellewell

检查两件事:

在wp选项表中,站点URL(两处)应为完整URL,如https://www.example.com .对于htaccess规则,此规则在大多数情况下都有效:

RewriteEngine On
    RewriteCond %{HTTPS} !=on
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
然后查看主题文件,确保对CSS/JS的任何引用都包括https协议,而不是http。大多数写得好的主题都会使用相对引用而不是绝对引用来包含文件。

插件也可能指定http而不是https。

使用开发人员工具(通常是浏览器中的F12)中的“网络”选项卡查看每个请求,以查看其来源。如果请求发送到插件文件夹,请检查其中的代码。

SO网友:Vincere Sempre

有类似的问题。

answer 解决了大部分问题,我希望你已经解决了。

我发现,原因是HTTPS(SSL)即使在更改Wordpress后也无法在我的Wordpress上工作。虚拟主机文件aka<web_directory>.conf 文件内部/ect/apache2/sites-available
2。wp-config 文件内部/var/www/<web_directory>/
3。[对于AWS EC2用户]为HTTPS连接添加具有SSL证书的负载平衡器

如果在完成所有这些之后,您可以在没有CSS和JS的情况下查看您的网站,那么,

最后一步

在Wordpress仪表板中,转到Settings>General

在下面Wordpress Address (URL) 添加https://<yourdomain>.com
下,Site Address (URL) 添加https://<yourdomain>.com

我发现Site Address (URL) 已通过网站URL激活,Wordpress主题自动指向,css文件带有HTTPS aka,https://<WordPressAddress>/css/index.css.

因此,只有您的域具有SSL访问权限,将您的域名添加到Wordpress Address (URL) 帮我解决了问题。

SO网友:F.A

将此代码添加到wp-config.php 在您的wordpress 根文件夹
同时,在General Settings 在管理面板上,更改httphttps 为您的站点URL创建一个主页。

define(\'FORCE_SSL_ADMIN\', true);
if (strpos($_SERVER[\'HTTP_X_FORWARDED_PROTO\'], \'https\') !== false)
   $_SERVER[\'HTTPS\']=\'on\';

SO网友:Shady Mohamed Sherif

当我在Azure webapp服务Linux上托管我的站点时,我也遇到了同样的问题。

尝试此插件。当它激活时要小心,它会工作。https://wordpress.org/plugins/jsm-force-ssl/

该插件使用本机WordPress过滤器,而不是PHP的输出缓冲区,以实现最大的可靠性、性能和缓存兼容性(该插件不影响缓存性能),以及301个永久重定向以实现最佳SEO(从HTTP移动到HTTPS时,301个重定向被视为最适合SEO)。

支持大型托管环境的代理/负载平衡变量:

HTTP\\u X\\u转发\\u协议HTTP\\u X\\u转发\\u SSL要求:

您的web服务器必须配置SSL证书并能够处理HTTPS请求。

只需激活插件,即可完成:

没有需要调整的插件设置,也没有对WordPress配置进行任何更改-只需激活或停用插件即可启用/禁用过滤器和动态重定向。