11

我想要强制使用 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

4 回答 4

26

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

# BEGIN Force HTTP
RewriteEngine On
RewriteCond %{SERVER_PORT} 443
RewriteRule ^(.*)$ http://yourdomain.com/$1 [R=301,L]
# END Force HTTP
于 2016-07-31T23:15:46.857 回答
1

试试 wordpress 的 Force 非 SSL 插件。

于 2012-09-19T06:51:24.193 回答
1

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

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

于 2016-12-06T06:50:14.677 回答
-17

为什么你需要恢复到http?如果您拥有适当的 SSL 证书,您不妨保持访问安全。除非您担心系统上的负载。

我知道这不是在回答问题,但我想强调的是,问题是关于如何做不好的做法,这首先不应该做。

于 2012-04-27T18:38:11.367 回答