Перенаправление на не www не работает для страниц в https

Я пытаюсь добавить правила перенаправления, используя .htaccess для таких целей:

  1. Перенаправьте все http-страницы на https.
  2. Перенаправьте все страницы www http и https на не 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 без www?


person Yuri    schedule 22.02.2017    source источник


Ответы (1)


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

RewriteEngine on

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

Перед тестированием убедитесь, что вы очистили кеш. Объединение двух правил также поможет ускорить ваш сайт, вместо того, чтобы запускать два отдельных правила.

person Joe    schedule 22.02.2017