我的 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 文件有什么问题?松散的结局在哪里?
最佳答案
改变规则的顺序。首先重定向到 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>
关于regex - HTTPS 强制重定向在 Wordpress 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19168489/