Как в Apache реализуется редирект c www на без www и с протокола HTTP на HTTPS
0 ∞Все более широкое внедрение протокола HTTPS поставило несколько новых задач перед разработчиками и системными администраторами. Таких, как необходимость редиректа с http на https.
- Введение
- Конфигурация Apache
- Как это работает?
- Замечания
- Заключение
Ниже я покажу, как реализовать редирект с www на без-www (или наоборот) и с http на https, используя конфигурацию сервера Apache. Чтобы стало понятнее, конфигурация будет перенаправлять следующие имена хостов:
http://example.com http://www.example.com https://example.com
на
https://example.com
Также я покажу небольшое изменение для перенаправления без-WWW на версию с WWW, если вы предпочитаете WWW.
https://www.%1%{REQUEST_URI} [L,NE,R=301]
RewriteRule – центральный элемент перенаправления. С помощью этой строки мы предписываем Apache перенаправить любой запрос на новый URL, который состоит из:
- https: // WWW;
- %1: Ссылка на без-WWW часть хоста;
- %{REQUEST_URL}: URL-запрос, без имени хоста.
Все эти маркеры соединены друг с другом, и представляют собой конечный URL перенаправления. В конце мы добавляем три флага:
- NE — чтобы не выйти из специальных символов;
- R=301 — использовать HTTP статус 301 редиректа;
- L — прекратить обработку других правил, и немедленно перенаправить.
В моём примере htaccess редиректа http на https используется дополнительная строка RewriteCond, чтобы извлечь имя хоста, а не подставлять имя в правило. Если чувствуете, что для вас это — потеря производительности, то можете встроить хост непосредственно в правило:
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www.
https://example.com%{REQUEST_URI} [L,NE,R=301]В данной статье представлена простая конфигурация перенаправления WWW и не-HTTPS запросов для домена сайта. Таким образом можно избежать проблем с дублированием контента в поисковых системах.
ВЛВиктория Лебедеваавтор-переводчик статьи «Apache redirect www to non-www and HTTP to HTTPS»
Пожалуйста, оставляйте ваши комментарии по текущей теме статьи. Мы очень благодарим вас за ваши комментарии, подписки, отклики, дизлайки, лайки!
Как настроить редирект с www на без www в IIS 7.x
Может это интересно?
| Переделал форму обратной связи bitrix в форму получения данных из базы |
Попробовал на битриксе реализовать возможность просмотра через веб-интерфейс результатов тестирования, используя при этом форму из его компонентов (bitrix:main.feedback). Но оказалось, что эта форма обратной связи и предназначена только для отправки сообщений через сайт, а не для получения данных из базы.
Полюбопытствуйте…
| Релакс. Комментарии к новостям |
В данный сборник включаю комментарии пользователей новостных инфоресурсов, объем которых всего одно-два предложения, но попадают они, что называется, не в бровь, а в глаз.
Зацените!…
| Блог вопиющего в пустыне |
Здесь выкладываю опусы из мира закупок, а также делюсь опытом в сайтостроении и в других сферах виртуального мира.
Может кому пригодится …
| Виртуальные туры по музеям Брянщины |
На страничке размещены виртуальные туры по усадьбе А.К.Толстого, мемориальному комплексу «Хацунь», Юдиновскому историко-археологическому музею. Эти красивые туры присутствовали на сайте областного краеведческого музея, но, по-видимому, были утрачены при обновлении сайта.
Полюбуйтесь красотами…
| Пример сервиса, разработанного на основе технологии ASP.NET |
Данный сервис предоставляет возможность подключиться через веб-интерфейс к базе данных, находящейся на MS SQL сервере и вывести на веб-страничку результаты запроса.
Попробуйте…
Как настроить редирект с www на без www в IIS 7.x
Просмотров : 988 | Комментариев : 0
Однажды в логах веб-сервера заметил, что с некоторых адресов идет запрос на сайт по адресу www.zakupki-32.ru, а сервер при этом отдаёт ошибку 404. Попробовал зайти по этому адресу — точно, — получил ответ «Не удается найти веб-страницу». В панели управления Битрикс (Настройки\Проактивная защита\Хосты-домены) добавил адрес www.zakupki-32.ru. Ничего, та же ошибка. Поисковики на данный запрос выдают однотипные рекомендации: либо через модуль Url Rewrite либо через web.
Попробовал и через Url Rewrite и через web.config. То же самое: «Не удается найти веб-страницу».
А решение оказалось до смешного простое. В Диспетчере служб IIS открыл начальную страницу сайта. В меню «Действия» выбрал «Привязки». В форме «Привязки сайта» нажал «Добавить». В форме «Добавление привязки сайта» в строке «Тип» выбрал «http», в строке «ip-адрес» выбрал «Все неназначенные», в строке «Порт» ввёл 80 , в строке «Имя узла» вставил www.zakupki-32.ru. Нажал ОК .
Всё заработало. Теперь при вводе в адресной строке www.zakupki-32.ru открывается главная страница сайта. И чего я этот Url Rewrite долбил?!
Возврат к списку
nginx — DNS-записи перенаправляют с www на не-www
Задавать вопрос
спросил
Изменено 4 года, 7 месяцев назад
Просмотрено 54к раз
Я использую домены Namecheap и хостинг Vultr.
Я пытаюсь перенаправить DNS с www на без www.
www.example.com на example.com
Я связался с Vultr и спросил, как это сделать с помощью их DNS-менеджера, они сказали, что не помогут, так как он самоуправляемый. Поэтому я связался с Namecheap, они сказали, что не помогут, потому что у них нет доступа к DNS-менеджеру Vultr, не скажут мне, верны ли записи, которые я им показал, и мне нужно будет связаться с Vultr. Так что я в бесконечной петле поддержки.
Vultr DNS Manager
Я следил за этим ответом о том, как настроить CNAME для перенаправления на не-www.
Тип | Имя | Данные | Секунды -------------------------------------- А | | IPv4-адрес | 300 АААА | | IPv6-адрес | 300 ЗАЯВЛЕНИЕ | . | пример.com | 300 ЗАЯВЛЕНИЕ | www | пример.com | 300
Прождав всю ночь, пока он распространится, сайт www все еще можно посетить, и он не перенаправляется.
Не позволяет сделать еще Запись , только CNAME .
Он говорит:
Невозможно добавить запись: запись CNAME не может сосуществовать с любыми другими данными.
NGINX
Я следовал этому руководству и попытался перенаправить его с доступной для сайтов конфигурацией. Http и Https работают, но www не перенаправляет на не-www.
сервер {
# Перенаправление с http на https
слушать 80;
вернуть 301 https://$host$request_uri;
}
сервер {
# Перенаправление с www на без www
имя_сервера www.example.com;
вернуть 301 $scheme://example.com$request_uri;
}
сервер {
слушать 443 ssl default_server;
SSL включен;
ssl_certificate /etc/nginx/ssl/cert_chain.crt;
ssl_certificate_key /etc/nginx/ssl/example_com.key;
ssl_protocols TLSv1.1 TLSv1.2;
имя_сервера пример.com;
...
- перенаправление
- nginx
- DNS
- сервер
DNS не может перенаправить ваш сайт с www на сайт без www.
A , AAAA или CNAME (это не имеет большого значения). Конфигурация nginx отвечает за перенаправление с www на не-www. Ваш второй серверный блок предназначен для перенаправления с www на не-www, но в настоящее время обрабатывает только соединения http (на порту 80).
Вы можете переместить сервер по умолчанию и использовать его для перенаправления всего на предполагаемое доменное имя. Например:
ssl_certificate /etc/nginx/ssl/cert_chain.crt;
ssl_certificate_key /etc/nginx/ssl/example_com.key;
сервер {
слушать 80 default_server;
слушать 443 ssl default_server;
вернуть 301 https://example.com$request_uri;
}
сервер {
слушать 443 ssl;
имя_сервера пример.com;
...
}
Предполагая, что у вас есть общий сертификат для доменных имен с www и без www, вы можете переместить директивы ssl_ во внешний блок и разрешить их наследование в обоих блоках сервера (как показано выше).
Дополнительную информацию см. в этом документе.
2Вы можете направить www на не-www, добавив новый блок сервера в файл конфигурации nginx.
Шаг 1: Добавьте следующий блок сервера в файл конфигурации nginx.
сервер {
имя_сервера www.example.com;
вернуть 301 $scheme://example.com$request_uri;
}
Шаг 2: Перезапустите nginx.
sudo systemctl перезапустить nginx
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google Зарегистрироваться через Facebook Зарегистрируйтесь, используя электронную почту и парольОпубликовать как гость
Электронная почтаОбязательно, но не отображается
Опубликовать как гость
Электронная почтаТребуется, но не отображается
Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания и подтверждаете, что прочитали и поняли нашу политику конфиденциальности и кодекс поведения.
.htaccess — Как перенаправить www на не-www с полным URL-адресом пути в apache2
спросил
Изменено 1 год, 5 месяцев назад
Просмотрено 252 разаВсе пути с www (www.example.com/posts/categories) перенаправляют на домашнюю страницу. Как я могу перенаправить из .htaccess и сохранить полный путь?
https://www.example.com/posts/categories на https://example.com/posts/categories
текущая конфигурация:
Параметры -Многовиды -Индексы ЕслиМодуль> RewriteEngine включен # Обработка заголовка авторизации RewriteCond %{HTTP:Авторизация} . (.*)$ https://%1/$1 [R=301,L] ЕслиМодуль> 9(.*)$ https://%1/$1 [R=301,L]
Вы поместили это правило не туда. Нужно идти на старте, сразу после директивы RewriteEngine . Поместив его в конец, после перезаписи на index.php любой запрос на поддомен www будет перенаправлен на (во время второго раунда обработки).
Как правило, внешние перенаправления всегда должны выполняться до внутренних перезаписей.
Также следует рассмотреть возможность реализации перенаправления с HTTP на HTTPS.
0Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google Зарегистрироваться через Facebook Зарегистрируйтесь, используя адрес электронной почты и парольОпубликовать как гость
Электронная почтаТребуется, но никогда не отображается
Опубликовать как гость
Электронная почтаТребуется, но не отображается
Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания и подтверждаете, что прочитали и поняли нашу политику конфиденциальности и кодекс поведения.


https://example.com%{REQUEST_URI} [L,NE,R=301]
(.*)$ https://%1/$1 [R=301,L]
ЕслиМодуль>
9(.*)$ https://%1/$1 [R=301,L]