2016-06-18 1 views
1

У меня есть сайт, на котором я развертываю сервер с включенным https. Таким образом, мои требования клиента следующие:избежать многих перенаправлений при форсировании https и www перед адресом

  1. Force https.
  2. Храните WWW в URL-адресе, чтобы получить URL-адреса как https://www.example.com, а не https://exambple.com, поэтому 3ws тоже принудительно.

Я использовал это правило, файл .htaccess для того, чтобы получить желаемый эффект:

RewriteCond %{HTTP_HOST} !^www\. 
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/es/$1/ [R=301,L] 

Но при тестировании скорости страницы с помощью PageSpeed Insights я плохой ответа сервера 1с. И отладка с помощью инструментов разработчика Chrome. Я вижу, что время отклика веб-сайта после последнего перенаправления составляет около 300 мс, поэтому перенаправления увеличивают время отклика.

Итак, мой вопрос в том, как я могу заставить https и www перед URL-адресом при минимизации перенаправления?

ответ

1

Попробуйте сделать это следующим образом:

Force SSL:

RewriteEngine On 
RewriteCond %{HTTPS} !=on 
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L] 

Force WWW:

RewriteEngine On 
RewriteCond %{HTTP_HOST} !^www\. 
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] 
0

Вы можете использовать ниже правила, которые будут добавляться WWW и HTTPS с URL.

RewriteEngine On 

# Ensure www. 
RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteRule^https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 


# Ensure https 
RewriteCond %{HTTPS} off 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]