Инструменты пользователя

Инструменты сайта


Боковая панель

Связь

url_redirection

URL redirection

Перенаправление URL (англ. URL redirection, URL forwarding, domain redirection, domain forwarding) — техника, применяемая для того, чтобы веб-страница была доступна под несколькими URL.

Слово редирект применяется в значениях:

  • переадресация
  • автоматическое (принудительное) перенаправление пользователя с одного веб-адреса на другую

Перенаправление HTTP запросов на HTTPS

Apache

Если вы хотите запретить использование HTTP, то самым разумным будет перенаправлять все HTTP запросы к страницам на их HTTPS адрес. Чтобы добиться этого в Apache можно, например, организовать перенаправление с помощью mod_rewrite. Для этого сначала необходимо его активировать:

sudo a2enmod rewrite
sudo service apache2 restart

Затем изменить файл /etc/apache2/sites-enabled/000-default, отвечающий за виртуальный хост по умолчанию для HTTP запросов. В этот файл надо добавить внутрь блока

<VirtualHost *:80>
...
</VirtualHost>

строчки:

        RewriteEngine On
        RewriteCond %{HTTPS} off
        RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

При этом все настройки директорий можно удалить, поскольку по HTTP на ваши сайты всё равно будет не попасть. Всё, теперь ещё раз перезапустите Apache и убедитесь, что при заходе по HTTP вы автоматически перенаправляетесь на HTTPS страницу.

Nginx

Перенаправление HTTP запросов на HTTPS в nginx делается так:

server {
 
server_name dieg.info www.dieg.info;
listen 80;
 
if ($scheme = http) {
rewrite ^ https://$server_name$request_uri? permanent;
 }
}

301 редирект: с WWW на без WWW и наоборот

  • С www на домен без WWW
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^www.example.org$ [NC]
    RewriteRule ^(.*)$ http://example.org/$1 [R=301,L]

    Если все работает в Server Response должен прийти ответ(заголовок) HTTP

    HTTP/1.1 301 Moved Permanently

    на запрос домена с www.

  • С домена на домен с WWW
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^example.org
    RewriteRule (.*) http://www.example.org/$1 [R=301,L]

Apache глобальное перенаправление (редирект)

  • Глобальное перенаправление (редирект) на другой адрес:
    Redirect / http://www.newsite.ru

    или

    Redirect 301 / https://www.newsite.ru
  • Перенаправление (редирект) только при запросе определенных страниц:
    redirect /company http://www.newsite.com/newcompany
    redirect /forum http://www.newsite.com/newforum

    При запросе страниц из каталогов company и forum будет произведено перенаправление на новые адреса.

url_redirection.txt · Последние изменения: 2017/09/02 05:33 — darkfire