强制HTTPS和非www(一个目录除外)

时间:2015-08-12 07:53:23

标签: apache .htaccess exception mod-rewrite https

要强制我的域上的任何页面 https 以及非www -version我在.htaccess中使用此代码段,工作正常

RewriteCond %{HTTP_HOST} ^www\.
RewriteCond %{HTTPS}s ^on(s)|off
RewriteCond http%1://%{HTTP_HOST} ^(https?://)(www\.)?(.+)$
RewriteRule ^ %1%3%{REQUEST_URI} [R=301,L]

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

但是我还希望目录 / folder / subfolder / 异常使用SSL / TLS,或者至少那个如果我使用http调用,则不会自动重定向到https版本。所以如果 / folder / subfolder / 仍然可以通过https获得,那也没关系,但我不想因某种原因强迫它。

实际上我可以在这里和其他地方找到一些片段,但不能以通用的方式与非www版本组合。所以希望有人可以帮助我,那会很好:-)谢谢!

1 个答案:

答案 0 :(得分:3)

您可以使用此单一来完成所有任务:

RewriteCond %{HTTP_HOST} ^www\. [NC,OR]
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteCond %{THE_REQUEST} !/older/subfolder/ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [R=302,L,NE]
相关问题