Wordpress HTTP到HTTPS的重定向太多
我遇到了一个奇怪的问题,每当我添加这个最常用的htaccess代码时,我就会得到太多的重定向 情景: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] #开始
+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
^(.*)$
表示:
^
)到结束($
)的所有内容。(在您的情况下是博客
)
(.*)
的意思。它将使“一切”部分作为变量$1
$1
替换为blog
。最终结果是:
博客
部分:
RewriteRule ^(.*)$ https://www.domain.test/$1 [R=301,L]
可能会出现新问题,但您必须首先解决此问题。此问题是Cloudflare中的灵活模式。当我在Cloudflare中将其设置为完全SSL模式时,问题得到了解决。这些安装中是否有一篇文章名为“blog”?我很确定情况并非如此,因为手动为/blog WordPress输入HTTPS可以完美地工作。感谢您的宝贵意见。是的,这个问题会发生,但我通过在Cloudflare中设置严格模式解决了主要的HTTPS问题