Перенаправлять домены http www и не-SSL на HTTPS без нескольких перенаправлений?
Я теряю сок ссылок при нескольких перенаправлениях.
Мне нужно перенаправить все версии домена на мой домен по умолчанию, т.Е.
https://example.com
Под всеми версиями домена я подразумеваю http://www
, http://
, https://www
и https://
. (index.php
для всех.)
В настоящее время я использую приведенный ниже код. Все домены перенаправляются на https://
, но не напрямую. Если я наберу http://www
, он будет перенаправлен 3 раза, как на картинке. Мне все еще нужно перенаправить index.php
.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.example.com [NC]
RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
Я использую "Перенаправление Путь" расширение браузера Google Chrome для отслеживания перенаправлений.
Вы можете увидеть перенаправление 3 раза:
Вы можете увидеть перенаправление 2 раза:
1
1 answers
Попробуйте использовать больше виртуальных хостов и перенаправлять вместо перезаписи.
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
Redirect permanent / https://www.example.com/
</VirtualHost>
<VirtualHost *:443>
ServerName www.example.com
Redirect permanent / https://example.com/
...
(put your HTTPS config & path to certs here for the redirect to work)
</VirtualHost>
<VirtualHost *:443>
ServerName example.com
...
(This is your destination VirtualHost)
</VirtualHost>
2
Author: Tom Brossman, 2016-12-17 08:31:59