Я искал идеальную переадресацию 301. Но я нахожу так много решений и не знаю, что лучше.
Вот что я хочу сделать
- http://domain.tld/ → https://domain.tld/ li >
- http://www.domain.tld/ → https://domain.tld/ li >
- https://www.domain.tld/ → https://domain.tld/ li >
Лучшая практика .htacess?
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]
</IfModule>
Это мой предпочтительный код. По крайней мере, сейчас unil.
Альтернативные способы
Я также нашел много других способов перенаправления от HTTP
до HTTPS
. Например:
1.
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Отсутствует один шаг? И нет [R=301,L]
здесь?
2.
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Является ли другой порядок лучше?
Должен ли я использовать
RewriteRule ^(.*)$
вместо
RewriteRule (.*)
?
3.
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} example\.com$ [NC]
RewriteRule ^ https://example.com%{REQUEST_URI} [R=301,L,NE]
Имеет ли использование полного доменного имени какие-либо преимущества в производительности? Мне действительно нужно NE
? ([R=301,L,NE]
vs. [L,R=301]
)
Итак, мой вопрос ко всем экспертам: какой лучший (исполняющий) способ перенаправить как от HTTP
до HTTPS
, так и от до
HTTPS://
?