强制站点范围的HTTPS,但在特定目录中强制HTTP

时间:2018-05-17 13:49:04

标签: .htaccess https url-rewriting

我看过但却无法找到我需要的答案 - 或者对我有用。 我有一个网站,我通过htaccess强制https。 有一个特定目录必须是http(不能是https)。

我的htaccess中有这个:

RewriteEngine On 
RewriteCond %{HTTPS} !=on
RewriteCond %{REQUEST_URI} !^/excluded_directory/.*$
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

这不会强制" excluded_directory"中的非https。 我还尝试在" excluded_directory"中添加第二个htaccess。但无济于事。 有人可以帮助我做到这一点吗?

2 个答案:

答案 0 :(得分:0)

要将特定目录网址从https重定向到http,您可以在/dir/.htaccess中使用以下内容:

RewriteCond %{HTTPS} on

RewriteRule ^/?thisDir/.*$ http://example.com%{REQUEST_URI} [NC,L,R]

答案 1 :(得分:0)

您也可以尝试条件声明以获得更多选项。你用这个替换你当前的规则。

  <If "%{REQUEST_URI} =~ m#^/exclude_directory# && %{HTTPS} == 'on'">
     RewriteEngine On
     RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 
  </If>
  <ElseIf "%{REQUEST_URI} !~ m#^/exclude_directory# && %{HTTPS} == 'off'">
     RewriteEngine On
     RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 
  </Else>