RewriteCond %{REQUEST_URI} !dir2[NC]
Отсутствует разделитель пробела перед аргументом flags , поэтому он никогда не будет соответствовать предполагаемому каталогу.Он должен выглядеть следующим образом:
RewriteCond %{REQUEST_URI} !dir2 [NC]
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Вам также не хватает двух пробелов, окружающих образец .Так что это снова никогда ничего не будет соответствовать.Итак, это должно выглядеть следующим образом:
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Пробелы являются разделителями в файлах конфигурации Apache.
Однако это можно улучшить, поскольку вы этого не сделаетенужны дополнительные условия, если вы просто хотите исключить один каталог.Вы должны использовать шаблон RewriteRule
вместо:
RewriteCond %{HTTPS} off
RewriteRule !^dir2 https://%{HTTP_HOST}%{REQUEST_URI} [NC,L,R=301]