您是否熟悉[L]
mod\\u重写的标志?它“导致mod\\u rewrite停止处理规则集。在大多数上下文中,这意味着如果规则匹配,则不会处理进一步的规则”。
请参见:https://httpd.apache.org/docs/2.4/rewrite/flags.html#flag_l
请注意,http->https规则上方的重写规则使用此标志。这些规则看起来像WordPress的规则,将不针对特定文件或目录的请求重定向到index.php
用于搬运。
一个想法是改变顺序,这样你的规则就会出现在Rewrite Engine On
因此,首先执行http vs https检查,可以进行重定向,然后对以下重定向请求(现在将是https)应用以下与WordPress功能相关的规则集。
你也可以试着写RewriteCond {HTTPS} != on
像RewriteCond %{HTTPS} off
还有你的RewriteRule
线路组件RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
更明确地说,返回http 301(永久)重定向状态代码。
编辑:我刚刚看到怀特先生的评论,我们正在同一时间写作。他也有很好的建议:把你修改过的规则放在#WORDPRESS评论栏之外,这样以后WORDPRESS的更新就不会影响它们了!