wordpress http到https重定向循环

时间:2014-08-26 18:16:58

标签: wordpress apache .htaccess redirect

我正在尝试强制我的网站加载HTTPS。我可以在PHP中创建一个适用于PHP文件的重定向,但我希望所有请求都被强制为HTTPS - JS,CSS,图像等。

这是我在.htaccess中所拥有的:

ErrorDocument 401 default

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

我已经尝试了各种方法,将重定向放在不同的位置等等,但是一切似乎都把它变成了一个重定向循环。我有什么想法可以解决这个问题吗?

谢谢。

2 个答案:

答案 0 :(得分:2)

在内部WP规则之前保持httphttps规则:

ErrorDocument 401 default

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,NE,R=302]

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

确保WP&#39} home URLsite URL在永久链接设置中也有https

答案 1 :(得分:0)

设置301永久重定向,这更加SEO友好。已经测试过:

# BEGIN WordPress

<IfModule mod_rewrite.c>
RewriteEngine On

# Redirect all traffic to https
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

# Wordpress rules 
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress
相关问题