Исторически домены веб-сайтов назывались с префиксом www или без него.
Существует несколько взглядов на то, как на самом деле следует называть домен; прогрессивное человечество считает, что без www- nowww.ru Однако многие западные эксперты считают обратное.
Однако речь не об этом, а о том, как организовать постоянный редирект туда-сюда на наших любимых веб-серверах.
Прежде всего, нужно сказать, что редирект должен быть постоянным, т.е.
предоставлять код ответа 301 Moved Permanently, чтобы браузеры не запоминали URL, с которого было сделано перенаправление.
Общий принцип таков: * описываем сервер с именем сервера, с которого делаем перенаправление * указать директиву для перенаправления Апач 2.2, 2.0, 1.3, RedirectMatch из mod_alias , то же самое можно сделать с помощью mod_rewrite :
<VirtualHost *:80>
ServerName example.com:80
RedirectMatch permanent (.
*) http://www.example.com$1
</VirtualHost>
Нгинкс, переписать из http_rewrite_module :
server {
server_name example.com;
rewrite ^(.
*)$ http://www.example.com$1 permanent;
}
Чтобы не указывать это правило для каждого домена, вы можете использовать отрицательное регулярное выражение:
server {
server_name ~^(?! www\.
);
rewrite ^ http://www.$host$request_uri permanent;
}
При этом явно описанные сайты без www сюда больше не попадут — регулярные выражения в имя_сервера используются в крайнем случае.
Автор решения — Игорь Сысоев.
Было бы здорово, если бы мы перечислили способы организации постоянных редиректов для других популярных веб-серверов.
УПД: добавлено примечание об общем перенаправлении для nginx Теги: #Nginx #Системное администрирование #www #httpd #redirect
-
Электрические Дороги Будущего
19 Oct, 24 -
Внутренности Файлов Word: Просто Ужасно
19 Oct, 24