Слишком много перенаправлений?

#.htaccess

#.htaccess

Вопрос:

Я использовал инструмент ‘Redirect mapper‘ с помощью Varvy.com , и это высветило проблему с моим www перенаправлением. Я бы хотел, чтобы было только одно перенаправление, но инструмент показывает два перенаправления. Смотрите скриншот ниже.

Это то, что я использую в своем htaccess файле

 RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www. [NC]
RewriteCond %{HTTP_HOST} ^(?:www.)?(. )$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,NE,R=301]
  

Как показано на скриншоте, http://www.d3creative.uk 302 перенаправления на https://www.d3creative.uk /, затем 301 перенаправляет на https://d3creative.uk /

Я бы хотел http://www.d3creative.uk / на 301 перенаправление на https://d3creative.uk /, пропуская перенаправление www.

Скриншот инструмента сопоставления перенаправлений

Буду признателен за любую помощь!


Обновить

Я использую ServerPilot для управления своим сервером, и я настроил SSL с помощью ServerPilot.

Я удалил исходные RewriteCond и RewriteRule строки из своего htaccess файла

Это устраняет множественные перенаправления (см. скриншот ниже), но мне все еще нужен способ перенаправить www на non-www

Я связался со службой поддержки ServerPilot, я опубликую здесь любые ответы.

введите описание изображения здесь

Комментарии:

1. Перенаправление 302 не вызвано теми правилами, которые вы опубликовали. В вашей конфигурации должно быть что-то еще. Вероятно, не в файле динамической конфигурации («.htaccess»), а в конфигурации хоста реального http-сервера, который в любом случае является предпочтительным местом для таких правил.

Ответ №1:

Исправлено!

В панели управления ServerPilot есть опция принудительного перенаправления HTTPS. Это противоречило любым перенаправлениям, которые я использовал в своем htaccess файле.

Отключите «Перенаправление на HTTPS» и используйте приведенный ниже набор правил в своем htaccess

Служба поддержки ServerPilot любезно предоставила этот набор правил, который отлично работает.

 RewriteCond %{HTTP_HOST} ^(www.)(.*) [NC]
RewriteRule (.*) https://%2%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
  

Все версии моего домена теперь перенаправляются (один раз) на мою предпочтительную версию домена.

Скриншот