您将HTTP到HTTPS(和规范的www)重定向放在了错误的位置。它应该在WordPress前端控制器之前。事实上,它应该在# BEGIN WordPress
以避免在将来的更新中被WordPress覆盖。
老实说,我有点惊讶重定向实际上可以做任何事情(除了对静态资源的请求)?(可能您正在看到缓存重定向,或者WP本身稍后正在重定向到主页?)
例如:
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\\.
RewriteRule ^ https://www.example.com%{REQUEST_URI} [NE,L,R]
# 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
该重定向最终应为301(永久)重定向。所以改变
R
到
R=301
一旦你确认它工作正常。