除了Apache中的几个页面之外,如何强制重写HTTPS?

除了几页之外,我需要强制将Apache中的所有页面redirect到HTTPS。 如何在这种情况下在Apache中编写重写规则?

RewriteEngine On RewriteCond %{HTTPS} =off RewriteCond %{REQUEST_URI} !^\/page1\/ RewriteCond %{REQUEST_URI} !^\/page2\/ RewriteRule (.*) https://%{HTTP_HOST}/$1 [L,R=301] RewriteCond %{HTTPS} =on RewriteCond %{REQUEST_URI} \/page1\/ [OR] RewriteCond %{REQUEST_URI} \/page2\/ RewriteRule (.*) http://%{HTTP_HOST}/$1 [L,R=301] 

第一个规则集将所有未通过HTTPS访问的页面重定向,而不是/page1//page2/https://的同一个URL。 第二个规则集将确保/page1//page2/被重定向回http://如果通过https://访问它们的话。

更简单的解决方案:

 RedirectMatch ^((?!\/(page1|page2)).*)$ https://%{HTTP_HOST}$1 

这会将除page1和page2之外的所有内容重定向到当前主机的https。