htaccess - как сделать редирект на https и www одновременно

Staid
На сайте с 30.07.2014
Offline
59
1573

Доброго времени. Реализовал отдельно редирект на https и на www. На сколько верно такое решение?


#Редирект на https
RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteRule .* https://www.%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

#Редирект на www
RewriteCond %{SERVER_NAME} !^www\.
RewriteRule ^(.*)$ https://www.%{SERVER_NAME}/$1 [R=301,L]
dma84
На сайте с 21.04.2009
Offline
168
#1

RewriteCond %{HTTP_HOST} ^site\.ru$ [NC] [OR]

RewriteCond %{HTTP:X-Forwarded-Proto} !=https

RewriteRule ^(.*)$ https://www.site.ru/$1 [R=301,L]

Staid
На сайте с 30.07.2014
Offline
59
#2

dma84, редирект на www работает, а на https нет почему-то.

Есть еще варианты?

G
На сайте с 03.10.2016
Offline
36
#3

Staid, https://timeweb.com/ru/help/pages/viewpage.action?pageId=4358249

может что полезное найдете

dma84
На сайте с 21.04.2009
Offline
168
#4
Staid:
dma84, редирект на www работает, а на https нет почему-то.
Есть еще варианты?

Вы писали, что по-отдельности у вас редиректы работают, обманули?

Вот ещё варианты условий под https:

RewriteCond %{HTTP:X-HTTPS} !^1$

RewriteCond %{SERVER_PORT} !^443$

RewriteCond %{ENV:HTTPS} !^on$

S
На сайте с 30.09.2016
Offline
469
#5

Staid, а как это правило

RewriteRule ^(.*)$ https://www.site.ru/$1 [R=301,L]
может редиректить на www, но не редиректить на https? Это же в принципе невозможно. Разве что у Вас прописан обратный редирект, с https на http.
Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
dma84
На сайте с 21.04.2009
Offline
168
#6
Sitealert:
Staid, а как это правило RewriteRule ^(.*)$ https://www.site.ru/$1 [R=301,L] может редиректить на www, но не редиректить на https? Это же в принципе невозможно. Разве что у Вас прописан обратный редирект, с https на http.

В том случае, если идёт запрос по http на сайт с www, но правило RewriteCond %{HTTP:X-Forwarded-Proto} !=https не срабатывает, потому как неверное.

S
На сайте с 30.09.2016
Offline
469
#7
dma84:
В том случае, если идёт запрос по http на сайт с www

Но в таком случае неверно утверждение

редирект на www работает
потому что здесь нет редиректа.
Staid
На сайте с 30.07.2014
Offline
59
#8
dma84:
Вы писали, что по-отдельности у вас редиректы работают, обманули?

По отдельности работают, вставляю вашу конструкцию и нет редиректа на https.

S
На сайте с 30.09.2016
Offline
469
#9

Staid, забейте на это. Работает - и хорошо, оставьте как есть. Хотя по идее - в предложенной Вам конструкции ничего особенного, просто объединение Вашей конструкции. Разве что site.ru надо поменять на Ваш домен:)

J
На сайте с 20.02.2014
Offline
120
jkm
#10
dma84:
RewriteCond %{HTTP_HOST} ^site\.ru$ [NC] [OR]

Перечисление флагов должно идти через запятую.

RewriteCond %{HTTP_HOST} ^site\.ru$ [NC,OR]

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий