2015-04-27 3 views
1

У меня есть два доменных имени www.domain.com и sub.domain.com, и я хочу перенаправить весь трафик http на www. domain.com и весь трафик https на sub.domain.com. Например, если URL-адрес называется http: // sub.domain.com/index.php, сервер должен переписать URL-адрес на http: // www.domain.com/index.php, и если URL-адрес называется https: // www.domain.com/index.php, сервер должен переписать URL-адрес на https: // sub.domain.com.Все http-трафик на домен.com и все https на sub.domain.com с htaccess

У меня есть этот код в Htaccess, но он не работает правильно:

RewriteEngine On 

RewriteCond %{HTTPS} on 
RewriteCond %{HTTP_HOST} ^www.domain.com$ [OR] 
RewriteCond %{HTTP_HOST} ^domain.com$ 
RewriteRule ^/?$ "http\:\/\/sub\.domain\.com\/" [R=301,L] 

RewriteCond %{HTTPS} off 
RewriteCond %{HTTP_HOST} ^sub.domain.com$ 
RewriteRule ^/?$ "http\:\/\/domain\.com\/" [R=301,L] 

Это правильно перенаправляет HTTPS на sub.domain.com, но только тогда, когда нет страницы указывается (https: // домен. com/index.php/some-page не работает и https: // domain.com yes). Для http не работает вообще.

Заранее благодарен!

ответ

1

Вы можете поместить этот код в корневом HTAccess

RewriteEngine On 

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

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

Убедитесь как domain.com и sub.domain.com одни и те же корневую папку документов. В противном случае, вам придется разделить код HTAccess в двух HTAccess (папка корневой домен один за)

/domain/root/folder/.htaccess

RewriteEngine On 

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

/subdomain/root/folder/.htaccess

RewriteEngine On 

RewriteCond %{HTTP_HOST} ^sub\.domain\.com$ [NC] 
RewriteCond %{HTTPS} =off 
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L] 
Смежные вопросы