2015-11-23 7 views
5

Мы только что купили расширение .com для нашего домена, и мы используем сертификаты SSL на обоих из них:Htaccess перенаправить HTTPS на другой протокол HTTPS

https://www.domain.net 
https://www.domain.com 

Теперь мы хотели бы использовать расширение .com только и перенаправить пользователей от старого домена на новый с помощью файла Htaccess:

http[s]://domain.net -------| 
http[s]://www.domain.net ---|---> https://www.domain.com 
http[s]://domain.com -------| 

Я не очень хорошо знаком с Htaccess, так что я пробовал:

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^http[s]?://(www\.)?domain\.com(.*)?$ 
RewriteRule ^(.*)$ http[s]?://www.domain.com/? [R,L] 

Это, очевидно, не работает!

Любая помощь была бы принята с благодарностью.

+1

Http строка хоста начинается с WWW или просто domain.com не HTTP. – starkeen

ответ

5

Вы не можете найти схему http:// в RewriteCond %{HTTP_HOST}.

Вы можете использовать это правило:

RewriteEngine On 

RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC] 
RewriteRule^https://www.domain.com%{REQUEST_URI} [R=302,L] 
+0

Это работает, но это добавляет трейлинг-косую черту. '' https: // domain.net'' перенаправляется на '' https: // www.domain.com // ''. Вероятно, это связано с Мадженто, верно? – roastedtoast

+2

Фактически '/' перед '% {REQUEST_URI}' не требуется. См. Обновленный ответ. – anubhava

+3

Спасибо, это прекрасно! Я только что сменил 302 на 301 для SEO-целей. – roastedtoast

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