2017-02-22 71 views
0

я пытаюсь добавить правила перенаправления с помощью .htaccess для таких целей:Перенаправление к не WWW не работает для страниц HTTPS

  1. перенаправлять все HTTP-страницы на протокол HTTPS.
  2. Перенаправить все страницы www http и https на www. Www. Https.

Мой код .htaccess:

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

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

Все работает хорошо, за исключением одного:

  • HTTP перенаправляет HTTPS (все страницы)
  • HTTPS WWW перенаправляет к протоколу HTTPS, не WWW (на главную страницу и подкаталоги)

Но https://www.example.com/1/page.html не перенаправляется на адрес https://example.com/1/page.html (обе страницы открылись)

В чем проблема? Как написать правило .htaccess для перенаправления всех страниц на https non www?

ответ

0

Вы можете использовать это, чтобы удалить www и силу https:

RewriteEngine on 

RewriteCond %{HTTPS} !=on [OR] 
RewriteCond %{HTTP_HOST} ^www\. [NC] 
RewriteRule ^(.*)$ https://example.com%{REQUEST_URI} [R=301,L,NE] 

Убедитесь, что вы очистили кэш перед тестированием этого. Комбинирование двух правил поможет также ускорить работу вашего сайта, вместо того, чтобы выполнять два отдельных правила.