Wordpress HTTP到HTTPS的重定向太多

Wordpress HTTP到HTTPS的重定向太多,wordpress,apache,.htaccess,cwp,Wordpress,Apache,.htaccess,Cwp,我遇到了一个奇怪的问题,每当我添加这个最常用的htaccess代码时,我就会得到太多的重定向 情景: +public_html | |--- WordPress 1 |--- .htaccess --+ /blog | |--WordPress 2 --.htaccess .htaccess(WordPress 2) 重新编写引擎打开 重写条件%{HTTPS}关闭 重写规则^(.*)$https://www.domain.test/blog/$1[R=301,L] #开始

我遇到了一个奇怪的问题,每当我添加这个最常用的htaccess代码时,我就会得到太多的重定向

情景:

+public_html
|
|--- WordPress 1
|--- .htaccess
 --+ /blog
   |
   |--WordPress 2
    --.htaccess
.htaccess(WordPress 2)

重新编写引擎打开
重写条件%{HTTPS}关闭
重写规则^(.*)$https://www.domain.test/blog/$1[R=301,L]
#开始WordPress
#“开始WordPress”和“结束WordPress”之间的指令(行)为
#动态生成,只能通过WordPress过滤器修改。
#这些标记之间对指令的任何更改都将被覆盖。
重新启动发动机
重写规则。*-[E=HTTP\U授权:%{HTTP:AUTHORIZATION}]
#重写条件%{HTTPS}关闭
#重写规则。*https://%{HTTP_HOST}%{REQUEST_URI}[L,R=301]
重写库/博客/
重写规则^index\.php$-[L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/blog/index.php[L]
#结束WordPress
每当我在任何htaccess中添加HTTPS重定向代码时,它都会给出太多的重定向

似乎RewriteCond%{HTTPS}off这个条件总是为真,这就是为什么(选中此处:) 我如何处理这个问题

注意:WordPress主页/站点URL设置正确:对于WordPress 2

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://www.domain.test/blog/$1 [R=301,L]

# BEGIN WordPress
# The directives (lines) between "BEGIN WordPress" and "END WordPress" are
# dynamically generated, and should only be modified via WordPress filters.
# Any changes to the directives between these markers will be overwritten.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
#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>

# END WordPress
编辑:
解决方案:问题是Cloudflare中的灵活模式。当我在Cloudflare中将其设置为完全SSL模式时,问题已得到解决。

在您的文件“.htaccess Wordpress 2”中,您有一个错误

RewriteRule ^(.*)$ https://www.domain.test/blog/$1 [R=301,L]
这会给你带来麻烦。发生了什么:

  • 比如说,您的输入是
    http://www.domain.test/blog
  • 将触发行
    RewriteCond%{HTTPS}off
    ,因为您使用的是
    http
    ,而不是
    HTTPS
  • 这意味着执行newxt重写规则
  • 本部分:
    ^(.*)$
    表示:

  • 从开始(
    ^
    )到结束(
    $
    )的所有内容。(在您的情况下是
    博客

  • 将该部分放入变量中。这就是括号部分
    (.*)
    的意思。它将使“一切”部分作为变量
    $1

  • 总而言之,您现在应该将
    $1
    替换为
    blog
    。最终结果是:

  • 因此,您应该先删除第三行的
    博客
    部分:

    RewriteRule ^(.*)$ https://www.domain.test/$1 [R=301,L]
    

    可能会出现新问题,但您必须首先解决此问题。

    此问题是Cloudflare中的灵活模式。当我在Cloudflare中将其设置为完全SSL模式时,问题得到了解决。

    这些安装中是否有一篇文章名为“blog”?我很确定情况并非如此,因为手动为/blog WordPress输入HTTPS可以完美地工作。感谢您的宝贵意见。是的,这个问题会发生,但我通过在Cloudflare中设置严格模式解决了主要的HTTPS问题