Ответ 1
Я бы поместил это в корневой каталог домена:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(subdirectory/.*)$ https://www.mydomain.com/$1 [R=301,L]
Я пытаюсь написать RewriteRule для моего .htaccess файла. В частности, всякий раз, когда пользователь обращается к определенному подкаталогу, я бы хотел, чтобы он перепутал, чтобы принудительно установить соединение HTTPS.
Например, всякий раз, когда кто-то обращается: http://www.mydomain.com/subdirectory
(и любые другие подкаталоги этого "подкаталога" ).
Я бы хотел, чтобы он переписал https://www.mydomain.com/subdirectory
Я пробовал следующее, но создается цикл:
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.mydomain.com/subdirectory/$1 [R=301,L]
Кроме того, этот файл .htaccess помещается в корень моего домена.
Любые идеи о том, как изменить мой RewriteRule?
Большое спасибо!
Я бы поместил это в корневой каталог домена:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(subdirectory/.*)$ https://www.mydomain.com/$1 [R=301,L]
Эта работа для меня позволяет перенаправить https на определенную папку, просто добавьте файл htaccess внутри папки со следующим содержимым:
RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Ahh, его комбо из двух. MonoMano - вы опустили подкаталог в первой части RewriteRule, поэтому направляете весь трафик на адрес поддомена HTTPS. Я обнаружил, что проверка "off" была более надежной, чем проверка на!= On, не спрашивайте меня, почему!
Вы хотите добавить подкаталог обратно в соответствии с ответом Floern, см. ниже:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(subdirectory/.*)$ https://www.mydomain.com/subdirectory/$1 [R=301,L]
Добавьте строки, указанные ниже, в файл .htaccess этого подкаталога:
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://www.domain.com/subdirectory/$1 [L,R=301]
Используйте это, если вы не хотите, чтобы адресная строка отображала подпапку. Он перенаправит yourdomain.com
на yourdomain.com/subfolder
, но будет выглядеть так, как будто вы все еще на yourdomain.com
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?yourprimarydomain.com$
RewriteCond %{REQUEST_URI} !^/subfolder/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /subfolder/$1
RewriteCond %{HTTP_HOST} ^(www.)?yourmaindomain.com$
RewriteRule ^(/)?$ subfolder/index.php [L]
Try
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://www.mydomain.com/subdirectory/$1 [R=301,L]