我使用了另一个Stack帖子中的示例来强制在我的网站上为所有页面强制http,除了用户登录页面。我不知道我是否遗漏了任何东西,但这不起作用:
# Turn SSL on for login
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} ^customer/login/ [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
# Turn SSL off everything but login
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !^customer/login/ [NC]
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]
看起来它应该有效,但由于某种原因它不是。有人可以让我知道我错过了什么。谢谢。
答案 0 :(得分:2)
REQUEST_URI
需要一个前导斜杠。所以你拥有它,它将无法匹敌。以这种方式尝试你的规则。
# Turn SSL on for login
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} ^/customer/login/ [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
# Turn SSL off everything but login
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !^/customer/login/ [NC]
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]