将https请求重定向到不同的端口

时间:2012-06-17 03:59:13

标签: apache mod-rewrite mod-proxy

我在一个Magento安装上有多个网站。其中三个站点具有不同的SSL证书。 SNI不是一个选项,所以我们决定使用不同的端口来处理请求。

在Virtual Hosts配置中,为每个使用SSL的站点分配了一个不同的端口。

“https://domain1.com” - >标准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 个答案:

答案 0 :(得分:1)

你可以使用mod_rewrite来做到这一点,但问题在于你的证书不适用于domain2.com而浏览器会抱怨(除非这些实际上是子域名并且你有通配符证书)

将这些规则添加到domain1 config:

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]