У меня есть следующее:
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} protected [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [L,R=301]
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !protected [NC]
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [L,R=301]
Если каталог называется «защищенным», убедитесь, что пользователь использует https. Если в каталоге есть что-то, кроме «защищенного», убедитесь, что пользователь использует http.
Это прекрасно работает, но как мне указать дополнительные каталоги?
Кроме того, есть ли способ, которым это может быть достигнуто без необходимости указывать каталоги дважды? Один раз для включения и один раз для исключения?
Спасибо!
UPDATE
Хотя моя «защищенная» папка была вынуждена использовать https из-за моих правил, все ссылки на изображения, таблицы стилей и javascripts, которых не было в «защищенной» папке, все еще перенаправлялись на http. Это приводит к тому, что «защищенная» страница защищена только частично. Добавление следующего до кода перенаправления решает это:
RewriteRule \.(css|gif|jpe?g|js|png|swf)$ - [L]