如何使用htaccess强制http- NOT https

JRO*_*ROB 7 html wordpress .htaccess https http

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

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Run Code Online (Sandbox Code Playgroud)

这是强制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]
Run Code Online (Sandbox Code Playgroud)

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

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

rog*_*rog 19

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

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

  • 感谢 rog 回答提出的问题。;) (2认同)
  • 如果HTTPS版本没有有效的证书,则此操作无效。(因为浏览器的证书警报总是在Apache重写之前发出。) (2认同)

Rez*_*a S -18

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

我知道这并没有回答这个问题,但我想强调,这个问题是在问如何做一个不好的实践,而这首先不应该做。