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

Apache 强制HTTPS和非www(一个目录除外),apache,.htaccess,exception,mod-rewrite,https,Apache,.htaccess,Exception,Mod Rewrite,Https,要将我域中的任何页面强制设置为https,以及非www-版本,我在.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} !o

要将我域中的任何页面强制设置为https,以及非www-版本,我在.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]
但是我也希望目录/文件夹/子文件夹/不使用SSL/TLS,或者至少如果我使用http调用,不会自动重定向到https版本。所以,如果仍然可以通过https使用/folder/subfolder/,那也没关系,但我只是不想出于某种原因而强制使用它



事实上,我可以在这里和其他地方找到一些代码片段,但不能以一般方式与非www版本相结合。所以希望有人能帮助我,那太好了:-)谢谢

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

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]

感谢您的快速重播。恐怕目录也会被重定向。我在不同的ISP、设备和浏览器上试用过。好的,首先试用我编辑过的规则,确保
/older/subfolder/
没有其他.htaccess。我想就是这样。非常感谢你!