Apache (htaccess) redirect loop http https


Apache (htaccess) redirect loop http https

我们在Wordpress主页上遇到了重定向循环,我不知道它来自哪里,我们将URL切换到 http://www https://。

这是htaccess文件:

<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www'.(.*)
RewriteRule ^.*$ https://%1/$1 [R=301,L]
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteRule ^index'.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

http://scrybs.com 正在重定向到 http://www.scrybs.com http://www.scrybs.com 导致重定向循环...

我尝试停用所有插件,删除htaccess文件,但这些都不起作用。

多谢。

不要对 HTTP 到 HTTPS 重定向使用 RewriteRules。 将其更改为让 HTTP(端口 80)虚拟主机重定向到 HTTPS(端口 443)虚拟主机,并将所有配置放入 HTTPS(端口 443)配置中。

<VirtualHost *:80>
    ServerName www.example.com
    Redirect "/" "https://www.example.com/"
</VirtualHost >
<VirtualHost *:443>
    ServerName www.example.com
    # ... SSL configuration goes here
</VirtualHost >

参考: https://httpd.apache.org/docs/2.4/rewrite/avoid.html

然后,删除以下行:

RewriteCond %{HTTP_HOST} ^www'.(.*)
RewriteRule ^.*$ https://%1/$1 [R=301,L]
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

您可能希望还原 www 配置,但没有 HTTPS 更新。