无法通过HTTPS访问WP-Admin

时间:2020-02-16 作者:Akil

我面临一个问题。我在Ubuntu服务器上安装了WordPress。

尽管site\\u url和home\\u url都使用https,WordPress仍然通过http加载文件。这会在尝试登录时阻止我(登录表单操作也是http),并且还会通过http加载资产,并且我会在浏览器控制台中收到警告。服务器由第三方配置,并重定向到https。

我使用了:

define( \'WP_HOME\', \'https://sitename.com\' );
define( \'WP_SITEURL\', \'https://sitename.com\' );
if (strpos($_SERVER[\'HTTP_X_FORWARDED_PROTO\'], \'https\') !== false)
       $_SERVER[\'HTTPS\']=\'on\';
有了这两个,我在wp admin上收到了许多重定向。

唯一有效的方法(至少是登录)是:

if($_SERVER[\'PHP_SELF\']=="/index.php")
{
define(\'WP_HOME\',\'https://sitename.com\');
define(\'WP_SITEURL\',\'https://sitename.com\');
}
else
{
define(\'WP_HOME\',\'http://sitename.com\');
define(\'WP_SITEURL\',\'http://sitename.com\');
}
但这不是一个解决方案,因为我的网站将通过http加载资产。。。我在这里和其他网站上搜索并测试了解决方案,但似乎都不起作用。

1 个回复
SO网友:Rick Hellewell

@Tomc的解决方案是一个很好的开端。这里是格式化的(你不能在评论中格式化内容)。

RewriteEngine On 
RewriteCond %{HTTPS} !=on 
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
此外,我不喜欢在配置文件中设置URL。最好(IMHO)在wp选项表中设置这两个值。

您可能需要查看整个数据库,以确保对内部资产(尤其是媒体)的所有引用都设置为https。有几个插件允许您搜索(和替换)数据库中的项目-我的目标是“更好的搜索和替换”插件。

您可以使用浏览器中的开发人员工具(通常是F12)查看所有请求,并查找那些不是https的请求。

Added

这里有一个强制SSL的重写规则,外加WordPress basic。更改域名以匹配您的域名。

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

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

相关推荐

从http切换到HTTPS后重定向OAuth2.0上的URL

我对Google OAuth 2.0配置非常陌生,请允许我问这个问题。我有一个wordpress网站,协议将更新到https 从…起http. 在该站点上,它使用OAuth 2.0和“http://*”作为重定向url从google api中提取数据。在创建站点协议https之后,我将在wordpress服务器端添加重定向设置http 到https.我的问题是,由于服务器端处理重定向,在OAuth 2.0上不更新重定向url的情况下,我的wordpress站点上是否仍然可以使用google api数据。我