除了Wordpress / wp-admin目录外,强制https到http重定向

时间:2016-06-11 08:51:25

标签: wordpress apache .htaccess

我们的HTTPS网站已在Google上编入索引。我们需要将其重定向到HTTP。我们使用以下代码:

<IfModule mod_rewrite.c>
Options +FollowSymlinks 
RewriteEngine on 
RewriteBase /
RewriteCond %{SERVER_PORT} ^443$ [OR]
RewriteCond %{HTTPS} =on
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
</IfModule>

https重定向到http,效果很好。

但是,我想从httpshttp重定向排除所有Wordpress管理员,因为我想让Wordpress管理员在https上工作,所以我添加了:< / p>

RewriteCond %{REQUEST_URI} !^wp-admin 

将.htaccess代码转换为:

<IfModule mod_rewrite.c>
Options +FollowSymlinks 
RewriteEngine on 
RewriteBase /
RewriteCond %{SERVER_PORT} ^443$ [OR]
RewriteCond %{HTTPS} =on
RewriteCond %{REQUEST_URI} !^wp-admin 
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
</IfModule>

不幸的是,这不起作用,并且尝试加载/wp-admin超过https会导致重定向过多而且Wordpress信息中心无法加载。

  

www.example.com重定向了你太多次了。

从/ httpshttp重定向中排除/ wp-admin会有所帮助。

1 个答案:

答案 0 :(得分:4)

尝试以下操作,除了目录wp-admin:

之外,这应该强制一切都是HTTP
RewriteEngine On

RewriteCond %{HTTP:X-Forwarded-SSL} !on
RewriteCond %{REQUEST_URI} ^\/(wp-admin)
RewriteRule (.*) https://%{HTTP_HOST}/$1 [L,R=301]

RewriteCond %{HTTP:X-Forwarded-SSL} =on
RewriteCond %{REQUEST_URI} !^\/(wp-admin)
RewriteRule (.*) http://%{HTTP_HOST}/$1 [L,R=301]

如果您遇到上述问题,也可以尝试:

RewriteEngine On
RewriteBase /

RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} ^/wp-admin
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !^/wp-admin
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]