2012-06-17 2 views
1

У меня есть несколько сайтов на одной установке Magento. Три из этих сайтов имеют разные сертификаты SSL. SNI не является вариантом, поэтому мы решили использовать разные порты для обработки запросов.Переадресация запросов https на другой порт

В конфигурации виртуальных хостов каждому сайту, использующему SSL, назначается другой порт.

"https://domain1.com" -> Standard 443

"https://domain2.com:444"

"https://domain3.com:445"

Эти запросы работают нормально, если вы переходите к ним напрямую. Magento обрабатывает все свои запросы должным образом.

Вот загвоздка:

Если вы идете в «https://domain2.com» без номера порта вы вызываете конфигурации виртуального хоста для domain1.com.

Мне нужен способ уловить все запросы до https://domain2.com и перенаправить их на https://domain2.com:444.

Должен быть способ сделать это с помощью mod_rewrite или mod_proxy.

ответ

1

Вы можете сделать это с помощью mod_rewrite, но проблема в том, что сертификат не будет для domain2.com и браузер будет жаловаться (если они не являются на самом деле субдомены и у вас есть групповой сертификат)

Добавьте эти правила в конфигурацию домена1:

RewriteEngine On 
RewriteCond %{HTTP_HOST} domain2.com$ [NC] 
RewriteRule ^(.*)$ https://domain2.com:444/$1 [R=301] 

RewriteCond %{HTTP_HOST} domain3.com$ [NC] 
RewriteRule ^(.*)$ https://domain3.com:445/$1 [R=301] 
+0

Пробовал, что. Во-первых, он подталкивает весь сайт к 444 и никаких ссылок не работает, если я не сброшу Magento, чтобы отобразить весь сайт за этим портом. Это сыграло бы ад с SEO. Возможно, есть и другой способ. Есть ли способ просто вернуть эти запросы обратно на http://domain2.com? –

+0

Ах, если вы не хотите перенаправлять его, попробуйте заменить '[R = 301]' на '[P]'? –