Apache(htaccess)重定向循环http https

时间:2016-03-14 00:11:10

标签: php wordpress apache .htaccess redirect

我们在Wordpress主页上遇到重定向循环,我不知道它来自何处,我们将网址切换为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.comhttp://www.scrybs.com导致重定向循环......

我尝试停用所有插件,删除htaccess文件,这些都没有。

非常感谢。

1 个答案:

答案 0 :(得分:0)

不要使用RewriteRules进行HTTP到HTTPS重定向。将其更改为将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更新。