如何使用htaccess强制http- NOT https

时间:2012-04-27 18:36:04

标签: html wordpress http .htaccess https

我的整个域名都有一个目录,我想强制使用https,即“/ docs”。在/ docs文件夹中,我有以下htaccess文件:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

这是强制https到/ docs目录中的所有内容,这是我想要它做的。我遇到的问题是试图强制REMOVE https回到http我网站的所有其他区域。在站点的根文件夹(运行wordpress)中,我有以下htaccess文件:

# 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

RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !^/docs/?.*$
RewriteRule ^(.*)$ http://www.mydomain.com/$1 [R=301,L]

不幸的是,这不起作用。我仍然可以通过https访问我网站的其他区域。

我需要更改什么才能使其正常工作?

4 个答案:

答案 0 :(得分:15)

由于接受的答案实际上没有回答这个问题,我想我会发布我的解决方案。将其添加到.htaccess文件以强制使用HTTP而不是HTTPS:

# BEGIN Force HTTP
RewriteEngine On
RewriteCond %{SERVER_PORT} 443
RewriteRule ^(.*)$ http://yourdomain.com/$1 [R=301,L]
# END Force HTTP

答案 1 :(得分:1)

尝试使用强制非SSL插件进行wordpress。

答案 2 :(得分:1)

&#34; WordPress Force HTTP&#34;插件是唯一对我有用的东西。它将https更改为http,不仅仅是大多数答案的首页,而且还将https更改为http,用于您网站中的所有子目录。

https://en-au.wordpress.org/plugins/wp-force-http/

答案 3 :(得分:-5)

为什么需要恢复为http?如果您拥有正确的SSL证书,则可以确保您的访问安全。除非您担心系统负载。