HTTPS 强制重定向在 Wordpress 中不起作用

问题描述 投票:0回答:3

我的 WordPress 目录位于 www.example.com/blog

我最近更改了整个网站以强制使用 HTTPS。所以我在 /blog/ 中的 .htaccess 文件看起来像这样:

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

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

我还将 WordPress 设置中的站点 URL 更改为 HTTPS。

这在主页中效果很好,但在任何帖子页面中,最终用户都可以通过更改 URL 并按 Enter 键来更改为非安全 HTTP。

例如,他们可以直接输入:http://www.example.com/blog/post-1/,它将作为 HTTP 加载。

我的 .htaccess 文件有什么问题?未解决的问题在哪里?

regex wordpress apache .htaccess mod-rewrite
3个回答
36
投票

更改规则的顺序。首先重定向到

https
,然后让 WP 接管您的所有请求。

<IfModule mod_rewrite.c>
RewriteEngine On

RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

RewriteBase /blog/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
</IfModule>

0
投票

您还可以将这两行添加到 wp-config.php

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

因此,您可以轻松地为开发环境的 http 和 live 环境的 https 制定条件,如下所示:

if(strpos($_SERVER['HTTP_HOST'], 'livedomain.com') !== FALSE){
  define('WP_SITEURL', 'https://' . $_SERVER['HTTP_HOST']);
  define('WP_HOME', 'https://' . $_SERVER['HTTP_HOST']);
} else {
  define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST']);
  define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST']);
}

0
投票

问题

最近我们遇到了类似的问题,而我们做了如下操作:

  1. 已安装主动 SSL(带有绿色挂锁图标)
  2. 在管理面板(设置的常规)中更新站点地址
  3. 将以下代码放入
    .htaccess
    文件中:
<IfModule mod_rewrite.c>
    RewriteEngine On
    
    RewriteCond %{HTTPS} off
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>

但是,该网站并未强制使用 HTTPS,并且 HTTP 和 HTTPS 都是独立工作的。

我们尝试禁用所有插件、清除缓存等,但没有成功。

解决方案

然后我们将上面的代码片段移到.htaccess

中的所有行之上
,这对我们有用。

# 1. HTTPS REDIRECTION CODE <----- ✅
# 2. WordPress Code
# 3. Any other htaccess directives
© www.soinside.com 2019 - 2024. All rights reserved.