Как предотвратить домашнюю страницу 301 цепочки? - PullRequest
1 голос
/ 15 октября 2019

Я пытаюсь сделать все версии URL-адресов домашней страницы 301 в одном месте, без 301.

Трудно показать проблему, потому что у меня недостаточно точек повторения, чтобы опубликовать изображение или показатьКоды ответов http в диаграмме (слишком много ссылок!)

Но, используя приведенный ниже код https://www.example.com/, сначала перейдем к http://www.example.com/, а затем к 301-му URL-адресу домашней страницы http://example.com

Я на Apache, и я пытался решить эту проблему с помощью .htaccess.

Я пробовал также попробовать следующее, но это работает только для путей к файлам. Redirect 301 /oldfile.htm /newfile.htm

# Redirect HTTPS to HTTP
RewriteCond %{HTTP:X-Forwarded-Proto} =https
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

#Force non-www:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.example.com [NC]
RewriteRule ^(.*)$ http://example/$1 [L,R=301]

Я пробовал также пробовал следующее, но это работает только для путей к файлам.

Redirect 301 /oldfile.htm /newfile.htm

Есть ли способ, которым яможно заставить https://www.example.com/ перейти на http://example.com без цепочки 301?

Спасибо, Майк.

1 Ответ

0 голосов
/ 15 октября 2019

Вы можете использовать одно правило для перенаправления ваших https URL-адресов на версии http и версии без www. Это перенаправит все ваши https URL на http без создания нескольких цепочек перенаправления.

Замените ваши правила htaccess следующим:

# Redirect HTTPS to HTTP and non-www
RewriteCond %{HTTP:X-Forwarded-Proto} =https [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^(.*)$ http://%1%{REQUEST_URI} [L,R=301]

Обязательно очистите кеш браузера или используйте другой веббраузер для проверки этого правила.

...