Amazon EC2 - Принудительное перенаправление доменов http и https без www на домен https: // www в httpd.conf [дубликат]

Прежде всего, спасибо за то, что уделили время моему вопросу.

Я пытаюсь перенаправить весь трафик с http: // и https: // на «https: // www. [Домен] .com / [etc]». В настоящее время я могу принудительно перенаправить все «www.» трафик на "https: // www." используя настройку в httpd.conf ниже:

<VirtualHost *:80>
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^.*$ https://{%SERVER_NAME}%{REQUEST_URI}
</VirtualHost>

Эта настройка, к сожалению, несовместима. Если, например, я введу «https: // [домен] .com» в адресную строку браузера, перенаправление не произойдет. В некоторых браузерах "http: // [домен] .com" также перенаправляет на не-www "https: // [домен] .com".

Короче говоря, у меня возникли проблемы с настройкой правильного перенаправления с любого префикса домена на «https: // www» на инстансе Amazon EC2 в файле httpd.conf. Если вы можете мне помочь, я буду очень признателен. Еще раз спасибо за ваше время.

Изменить: Есть еще один вопрос и ответ, который касается общих правил перезаписи, однако есть некоторые особые правила для Amazon EC2 (ELB), которые не рассматриваются в этом ответе.Честно говоря, я не уверен, применимы ли особенности Amazon EC2 к моему вопросу, но код, который у меня есть (x-forwarded-proto), специфичен для ELB.

Как бы то ни было, я задаю этот вопрос, потому что все мои ресурсы исчерпаны. Если я найду (или найду) ответ где-то еще, я с радостью дополню свой вопрос информацией и ссылкой.

Edit2: Следующий код выполняет перенаправление с [домен] .com, http: // [domain.com] и http: // www. [Домен] .com на https: // www. [Домен ] .com. К сожалению, https: // [домен] .com по-прежнему не выполняет перенаправление.

<VirtualHost *:80>
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^.*$ https://{%SERVER_NAME}%{REQUEST_URI}

RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</VirtualHost>

Есть ли другой VirtualHost, который мне нужно настроить для перенаправления домена https: //?

-1
задан 18 July 2016 в 21:19
1 ответ

Это включит возможности перезаписи:

RewriteEngine On

Эта проверка позволяет убедиться, что соединение еще не является HTTPS:

RewriteCond %{HTTPS} !=on

Это правило перенаправит пользователей из их первоначального местоположения, на то же самое:

RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]

Ведущий слэш сделан необязательным, так что это будет работать либо в местоположении httpd.conf, но с использованием HTTPS.

.
-1
ответ дан 5 December 2019 в 21:00

Теги

Похожие вопросы