2013-12-04 5 views
0

Я пытаюсь перенаправить как www.site.com и site.com в https://site.comПеренаправление .htaccess ССЛ HTTPS

Мой код

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

Как-то не работает должным образом. Как заставить его работать и перенаправить ho https не только из домашних страниц, как я писал выше, но и с сайта site.com/page и www.site.com/page тоже?

ответ

2

Это то, что мы использовали:

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

Перенаправление ничего с WWW из передних к безопасному эквиваленту.

Edit: Обновление включает опциональный WWW

+0

, а как насчет других страниц? site.com/random, например, не перенаправляется на https-версию – user1482261

+0

Обновлен мой ответ, чтобы принимать версии www и non-www. Первоначально неверно изложил вопрос. – kinghfb

+0

Кроме того, вы должны убедиться, что у вас включен mod_rewrite. – kinghfb

1

Вы должны убедиться, что вы уже не в HTTPS:

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

И вы не хотите, чтобы соответствовать против хозяина, чтобы быть site.comИwww.site.com, так как он не может быть одновременно в то же время.

+0

получил его, но как сделать site.com/random страницу для перенаправления на https: //site.com/random, теперь он работает только на главной странице site.com и www.site.com – user1482261

+0

@ user1482261 он должен работать для любого запроса, не забудьте очистить кэш вашего браузера –

0

Следующие кажется более стабильным в Chrome и Firefox. Это не вызывает проблемы с циклом перенаправления.

RewriteEngine on 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ "https\:\/\/YOURDOMAIN\.com\/$1" [R=301,L] 
Смежные вопросы