.htaccess 仅用于一个页面的HTTPS

.htaccess 仅用于一个页面的HTTPS,.htaccess,http,mod-rewrite,ssl,https,.htaccess,Http,Mod Rewrite,Ssl,Https,我的客户端要求仅在单个页面上使用HTTPS。在站点的其余部分,使用简单的HTTP。我知道这有点奇怪,但我不得不这么做。Via.htaccess可以是: Options +FollowSymLinks RewriteEngine on RewriteCond %{HTTP_HOST} ^example.com [NC] RewriteRule ^(.*)$ http://example.com/$1 [L,R=301] 如何添加条件以跳过该安全(https://example.com/se

我的客户端要求仅在单个页面上使用HTTPS。在站点的其余部分,使用简单的HTTP。我知道这有点奇怪,但我不得不这么做。Via.htaccess可以是:

Options +FollowSymLinks 
RewriteEngine on 
RewriteCond %{HTTP_HOST} ^example.com [NC] 
RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]

如何添加条件以跳过该安全(
https://example.com/secure/
)第页

您可以这样做:

Options +FollowSymLinks 
RewriteEngine on 

RewriteCond %{HTTPS} off
RewriteRule ^secure(/.*)?$ https://%{HTTP_HOST}%{REQUEST_URI}  [L,R=301,NE]

RewriteCond %{HTTPS} on
RewriteRule !^secure(/.*?)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

所以,这就像如果HTTPS关闭,页面为“/secure”,则重定向到HTTPS。如果HTTPS处于打开状态且页面不“/secure”,则重定向到http。对吗?对,在第二条规则中。如果https&&uri不是以
/secure/
开头,那么请强制
http://
谢谢。顺便说一句,/secure/是一个页面。所以我应该使^secure[/]?$安全,对吗?保留/可选。是的,确保将尾部
/
设置为可选以涵盖这两种情况更安全(请参见编辑)。