2

首先我不得不说我找到了很多关于修改情况的答案,但不是这个。

Apache 强制 HTTP 的某些 URL 和所有其他通过 https。希望获得有关以下方面的专业知识。感谢您的所有时间并感谢您。

我们的生产环境中有 apache 前端 tomcat,我们希望为除少数页面外的所有传入启用 https,并希望帮助编写可靠的 apache 重写规则来执行此操作。那是

  1. 除某些页面(/abc、/def、/ghi)强制使用 http 外,所有传入连接都通过 https。

任何帮助。我在 google  的帮助下想出了这个,但它不适用于 http。所有流量都转到 https

RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !^/(/abc|/def|/ghi)
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} ^/(/abc|/def|/ghi)
RewriteRule ^(.*)$ http://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
4

1 回答 1

2

您的条件中有太多斜线,无法检查%{REQUEST_URI}. 删除括号内的:

RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !^/(abc|def|ghi)
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} ^/(abc|def|ghi)
RewriteRule ^(.*)$ http://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
于 2013-09-10T17:50:01.153 回答