【问题标题】:Redirect https requests to different port将 https 请求重定向到不同的端口
【发布时间】:2012-06-19 14:16:15
【问题描述】:

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

在虚拟主机配置中,为每个使用 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 的方法。

【问题讨论】:

    标签: apache mod-rewrite mod-proxy


    【解决方案1】:

    您可以使用 mod_rewrite 来完成,但这里的问题是您的证书不适用于 domain2.com 并且浏览器会抱怨(除非这些实际上是子域并且您有通配符证书)

    将这些规则添加到 domain1 配置中:

    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]
    

    【讨论】:

    • 试过了。一方面,它将整个站点推入 444 并且没有链接工作,除非我重置 Magento 以在该端口后面显示整个站点。这将与 SEO 一起玩地狱。也许还有另一种方法可以解决这个问题。有没有办法将这些请求退回给domain2.com?
    • 啊,如果你不希望它重定向,尝试将[R=301]替换为[P]?
    猜你喜欢
    • 1970-01-01
    • 2014-09-04
    • 2018-11-10
    • 2014-04-01
    • 2015-09-30
    • 2018-08-23
    • 2017-06-29
    • 1970-01-01
    • 2017-01-24
    相关资源
    最近更新 更多