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

标签 regex wordpress apache .htaccess mod-rewrite

我的 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/

相关文章:

PHP/Apache : Rewrite rules with . htaccess

python - 在 Python 中使用正则表达式匹配区分大小写的 unicode 字符串

java - 正则表达式语法 javafx

php - 每当有 5 个空格时拆分字符串

javascript - 如何在 JavaScript 中匹配以输入结尾结尾的最小模式?

php - 如何在 WordPress 中设置作者 ID 的样式?

mysql - WordPress 访问

jquery - 如何通过 Ajax 访问嵌套的 JSON 对象?

java - X-Frame-Options 支持同一域的不同子域

apache - apache 的 www-root 中的文件是否必须由沙箱中的 root 用户拥有?