С нами с 13.12.13
Сообщения: 85
Рейтинг: -40
|
Добавлено: 09/08/17 в 23:46 |
Привет всем.
Задал один вопрос тут и вариантов никто не смог предложить.
Надеюсь тут еще есть специалисты и кто-нибудь подскажет:
Есть домен.ком с сертификатом.
Нужно сделать редиректы:
1) с www_домен_ком на https://домен.ком
2) с https://www_домен_ком на https://домен_ком
3) с домен.ком на https://домен.ком
Делаю первые два и все ОК
А третий вариант гугл подсказывает только методом включения https, НО
тогда появляется двойной редирект для 2-го варианта: с www идет на https://www и потом второй редирект на https://домен.ком
Есть работающий вариант для всех 3 правил перенаправлений без двойного редиректа?
|
|
|
|
С нами с 11.12.11
Сообщения: 351
Рейтинг: 737
|
Добавлено: 10/08/17 в 02:12 |
Навскидку,
Делаем два виртуалхоста
Первый без SSL
Код: | <VirtualHost 172.20.30.40:80>
ServerName domain.com
ServerAlias www .domain.com
RewriteRule ^(.*)$ https://domain.com/$1 [R=301,L]
</VirtualHost> |
Втрой с SSL
Код: | <VirtualHost 172.20.30.40:443>
ServerName domain.com
ServerAlias www .domain.com
SSLEngine on
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
DocumentRoot "/www/domain/https/..."
и тд
</VirtualHost> |
ServerAlias www .domain.com - пробел тут убрать надо естественно, просто форум вырезает тогда.
Не соображу где тут могут быть два редиректа?
|
|
|
|
С нами с 13.12.13
Сообщения: 85
Рейтинг: -40
|
Добавлено: 10/08/17 в 14:47 |
Вставил Ваше предложение в VirtualHost (с изменениями)
Действительно не стало двойного редиректа. Спасибо.
Возникли только другие неприятные мелочи:
<VirtualHost 172.20.30.40:80>
RewriteRule ^(.*)$ https://domain.com/$1 [R=301,L]
такая конструкция не работает для редиректа
3) с домен.ком на https://домен.ком
или появляется неприятный момент: Location: https://domain.com//
с двумя слэшами на конце(
пришлось делать:
RewriteCond %{SERVER_NAME} =domain.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [L,NE,R=permanent]
Но и это не по перфекционистки
хоть в конфиге апача и стоит дефолтный UTF-8, но видимо обрабатывается все ранее и отдается по первому языку-en:
Content-Type: text/html; charset=iso-8859-1
Хотя все идеально для 443 - и домен и 1 редирект и charset=UTF-8:
<VirtualHost 172.20.30.40:443>
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
HTTP/1.1 301 Moved Permanently
Server: Apache
Location: https://domain.com/
Content-Type: text/html; charset=UTF-8
Получается если сделать рабочей конструкцию для 80 от 443:
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
то все заработает идеально, но пока что никак не выходит каменный цветок
|
|
|
|
С нами с 11.12.11
Сообщения: 351
Рейтинг: 737
|
Добавлено: 11/08/17 в 03:35 |
Какая разница какой там charset у редиректа?, если отдаётся просто заголовок Location: с урлом, и тела ответа нет.
Ну а дальше мне тяжело понять Ваш поток мыслей.
Что работает, а что нет?
|
|
|
|
С нами с 09.08.12
Сообщения: 185
Рейтинг: 378
|
Добавлено: 11/08/17 в 08:18 |
truethen писал: | Привет всем.
Задал один вопрос тут и вариантов никто не смог предложить.
Надеюсь тут еще есть специалисты и кто-нибудь подскажет:
Есть домен.ком с сертификатом.
Нужно сделать редиректы:
1) с www_домен_ком на https://домен.ком
2) с https://www_домен_ком на https://домен_ком
3) с домен.ком на https://домен.ком
Делаю первые два и все ОК
А третий вариант гугл подсказывает только методом включения https, НО
тогда появляется двойной редирект для 2-го варианта: с www идет на https://www и потом второй редирект на https://домен.ком
Есть работающий вариант для всех 3 правил перенаправлений без двойного редиректа? |
есть lua поддержка в apache nginx или js
написать логику на нем где будет проверятся все три или больше условий сразу
и делать только 1 редирект что мешает?
в крайнем случае всегда можно сделать редирект на уровне веб приложения (php и т.п) - как обчно и делают.
|
|
|
|
127.0.0.1
С нами с 26.04.06
Сообщения: 1092
Рейтинг: 557
|
Добавлено: 11/08/17 в 17:48 |
редирект нужен для апача или нгинкс?
|
|
|
|
С нами с 13.12.13
Сообщения: 85
Рейтинг: -40
|
Добавлено: 23/09/17 в 12:47 |
Оффтопик: Сорри, не включил напоминалку о получении ответов
завел в вхост апача так и все отлично работает:
А так как изначально ступил и не завел сертификат для www, то пришлось еще дописать:
Код: | RewriteCond %{HTTP_HOST} ^https://www.domen.com$ [NC]
RewriteRule ^(.*)$ https://domen.com$1 [R=301,L] |
Mad писал: | Не соображу где тут могут быть два редиректа? |
вот так делают не подумав и вот Вам куча редиректов)))
сплошное наебалово
|
|
|
|
Текстовая реклама в форме ответа Заголовок и до четырех строчек текста Длина текста до 350 символов Купить рекламу в этом месте! |