1
RewriteCond %{HTTP_HOST} ^(.*\.)*subexample.example.com$ [NC]
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)$ https://subexample.example.com/$1 [R]   

Это то, что я использовал. Это работает, пока я захожу на определенную страницу, например, subexample.example.com/orders.php. Но если вы попытаетесь перейти к корню субдомена, в конце добавится дополнительный «/ пример».

Любое предложение о наборе правил, которые будут работать?


Большое спасибо за ваши ответы!

На самом деле, это то, что я пытаюсь сделать:

http://support.mydomain.net >> https://support.mydomain.net

А ТАКЖЕ(!)

http://support.mydomain.net/anypage* >> https://support.mydomain.net/anypage*

> RewriteCond %{HTTPS} off RewriteRule (.*)
> https://%{HTTP_HOST}%{REQUEST_URI}

Работает, за исключением того, что мне нужно это сделать только для support.mydomain.net

С вышеупомянутой настройкой вы получаете предупреждение о сертификате, если вы пытаетесь перейти только на mydomain.net, на котором у меня нет или мне нужен сертификат SSL.

ОБНОВИТЬ!

Другая проблема с правилом, которое я написал выше, заключается в том, что если вы попытаетесь перейти в корень поддоменов (т.е. support.mydomain.net), он перейдет по адресу https://support.mydomain.net/support.

Это сводит меня с ума, помогите! знак равно

Любая помощь будет принята с благодарностью!

1 ответ1

1

Исходя из вашего кода, я предполагаю, что вы хотите сделать следующие перенаправления:

http://aaa.subexample.example.com -> https://subexample.example.com/aaa
http://subexample.example.com -> https://subexample.example.com/

И это последнее не работает.

Я бы переписал в двух разных частях RewriteRule.

RewriteCond %{HTTP_HOST} ^subexample.example.com$ [NC]
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)$ https://subexample.example.com/$1 [L]

RewriteCond %{HTTP_HOST} ^(.+\.)+subexample.example.com$ [NC]
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)$ https://subexample.example.com/$1 [R]

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .