如何使用htaccess强制使用http- NOT https
我有一个目录用于整个域,我想要强制https,即“/ docs”。在/ docs文件夹,我有以下htaccess文件:如何使用htaccess强制使用http- NOT https
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
这就迫使HTTPS在/ docs目录,这就是我想要它做的一切。我遇到的问题是试图强制删除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访问我网站的其他区域。
我需要改变以使其正常工作?
为什么你需要恢复到http?如果您拥有正确的SSL证书,则不妨保证您的访问安全。除非您担心系统上的负载。
尝试用于wordpress的Force非SSL插件。
如果SSL的目录位于WordPress目录之外,这样做会起作用吗? – 2012-09-20 06:49:15
由于接受的答案实际上并没有回答这个问题,我想我会把我的解决方案发布到这里。添加到您的.htaccess
文件强制HTTP而不是HTTPS的:
# BEGIN Force HTTP
RewriteEngine On
RewriteCond %{SERVER_PORT} 443
RewriteRule ^(.*)$ http://yourdomain.com/$1 [R=301,L]
# END Force HTTP
感谢rog回答所问的问题。 ;) – 2017-01-13 15:52:17
如果HTTPS版本没有有效的证书,则这不起作用。 (因为浏览器的证书警报总是在Apache重写之前出现。) – 2017-02-20 08:36:18
@TamásBolvári有效的问题,但是问题提到他们已经获得了有效的证书。 – rog 2017-03-06 04:06:18
的“WordPress的力量HTTP”插件只是为我工作的事情。它将https更改为http,不仅仅是作为大多数答案的头版,还会将网站中所有子目录的https更改为http。
系统负载,一些图像和JavaScript将被混合HTTP/HTTPS等 – JROB 2012-04-27 18:40:53
使用相对URI,以避免与混合的安全级别(问题'// example.com /富/ bar.jpeg'如果你需要改变主机)。 – Quentin 2012-04-27 18:45:41