2016-10-26 4 views
1

Мне нужно перенаправить с Apache-сервером весь трафик с http на https. И я хочу, чтобы сохранить свои фактические переназначения (без WWW -> с WWW)Перенаправление с HTTP на HTTPS, сохраняющее старые перенаправления с apache

RewriteCond %{HTTPS} off 
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L] 

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

С этой HTAccess у меня есть HTTP-> HTTPS переназначения и без www-> с WWW перенаправлением, но не как в то же самое время.

мне нужно это Перенаправление:

http://domain.com ->https://www.domain.com

http://domain.com/foo/bar ->https://www.domain.com/foo/bar

Благодарность

ответ

1

Вы можете использовать [OR] положение, чтобы объединить 2 условия в одном правиле переадресации:

RewriteCond %{HTTPS} off [OR] 
RewriteCond %{HTTP_HOST} ^domain\.com$ [NC] 
RewriteRule^https://www.domain.com%{REQUEST_URI} [R=301,L,NE] 

Теперь, если вы хотите, чтобы избежать жесткого кодирования имени домена в этом правиле, то используйте:

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

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

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