2015-10-26 10 views
2

Я пытаюсь получить все мои URL-адрес для перенаправления https:// без www.HTTPS без WWW перенаправить

Если кто-то кладет в www. или http:// или http:// они перенаправлены https:// проблема возникает, если они ставят https://www. то Безразлично 't перенаправить на https://website

Я использую следующее в своих htaccess, любые предложения?

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

RewriteCond %{HTTPS} !on 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 
+0

не имеет смысла. 'if (https отключен, а хост имеет www), затем перенаправляет', а затем' if (https не включен, иначе он выключен), а затем перенаправляет'. –

ответ

4

Это одно правило может позаботиться о двух требований:

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

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

+0

спасибо, кажется, работает во всем, кроме хрома, где он все еще хранит www. – NewToCode

+0

Это из-за старого кеша в Chrome. Очистить все данные кэша и повторить проверку. – anubhava

+0

@ Энди Я уверен, что это не просто Хром. Я также столкнулся с аналогичной ситуацией в других браузерах. –

Смежные вопросы