2016-03-14 169 views
0

我们在Wordpress主页上遇到重定向循环,我不知道它来自哪里,我们将URL切换为http://www为https://。Apache(htaccess)重定向循环http 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文件,这些都不工作。

非常感谢。

+2

我认为问题来自第一条规则。将'^。* $'改为'^(。*)$',这样'$ 1'实际上包含了一些东西。 –

+0

@MikeRockett这个问题发生在htaccess调用之前... – scrybs

回答

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更新。

+0

我是否必须在我的.htacess文件或服务器端添加这些行?看起来我的问题出现在调用.htaccess文件之前.... – scrybs