.htaccess用于SSL?

cod*_*ama 2 regex apache .htaccess mod-rewrite

我有:

RewriteCond %{HTTP_HOST} ^MYDOMAIN\.com$ [NC]
RewriteRule ^(.*)$ http://www.MYDOMAIN.com/$1 [L,R=301]

RewriteCond %{HTTPS} !=on
RewriteCond %{REQUEST_URI} ^/(user|admin|cart)
RewriteRule ^(.*)$ https://www.MYDOMAIN.com/$1 [R=301,L] 
Run Code Online (Sandbox Code Playgroud)

这有效地路由所有/ user和/ admin和/ cart路径以使用SSL.我的问题是相反的.我需要一条规则,声明如果您不在这些页面上,它会将您重定向到HTTP(无SSL).

我怎么做?

anu*_*ava 5

首先要完全清除浏览器缓存并重新启动浏览器.然后用这个替换你的.htaccess:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^MYDOMAIN\.com$ [NC]
RewriteRule ^ http://www.MYDOMAIN.com%{REQUEST_URI} [L,R]

RewriteCond %{HTTPS} !=on
RewriteRule ^(user|admin|cart)(/.*|)$ https://www.MYDOMAIN.com%{REQUEST_URI} [R,L,NC]

RewriteCond %{HTTPS} =on
RewriteRule (?!^(user|admin|cart)(/.*|)$)^.*$ http://www.MYDOMAIN.com%{REQUEST_URI} [R,L,NC]
Run Code Online (Sandbox Code Playgroud)