【问题标题】:Serving the same Symfony2 application from two different domains为来自两个不同域的同一个 Symfony2 应用程序提供服务
【发布时间】:2016-07-06 09:22:58
【问题描述】:

我们有一个 Symfony2 应用程序,希望从两个不同的域提供服务。这是我们希望它的工作方式;

假设我们在我们的服务器上设置了两个域和两个虚拟主机(我们使用的是 apache)——为了便于讨论,我们称它们为 www.first.com 和 www.second.com。

假设 Symfony2 托管在 www.first.com 的虚拟主机下,并且一切正常。

例如,当有人浏览 www.second.com/login 时,我们希望提供可在 www.first.com/second/login 找到的页面,因此对 www.second.com/* 的任何请求如果 url 是 www.first.com/second/*,则提供 Symfony 将生成的页面 - 但是,从用户的角度来看,一切都应该看起来好像来自 www.second.com - 包括 cookie 和网络资产。

【问题讨论】:

  • 你不会有重复的内容吗?因为 first.com/second/login 和 second.com/login 是一样的,不是吗
  • 不同域的要点是什么?您是否在不同的域上可能有两个不同的数据库,但应用程序是相同的?
  • 是的,内容是一样的; first.com/second/login 将与 second.com/login 相同——我们将几个现有的 Web 应用程序合并到一个 Symfony 项目中。一个这样的应用程序目前托管在 www.second.com,但是当新的 Symfony 版本准备好时,我们希望它看起来好像仍然是从 www.second.com 提供的,即使所有代码都来自新的代码库。

标签: php symfony apache2


【解决方案1】:

只需在同一个 Symfony 应用程序/前端控制器/资产上重定向两个域。

客户端浏览器将看到两个不同的主机和单独的 cookie/资产

【讨论】:

    【解决方案2】:

    我使用这个 apache 虚拟主机配置来达到同样的效果

    <VirtualHost *:80>
        DocumentRoot [your path to symfony web folder]
        <Directory [your path to symfony web folder]>
            Options FollowSymLinks
            AllowOverride All
            Order allow,deny
            Allow from all
        </Directory>   
        ServerAdmin info@first.com
        ServerName www.first.com
        ServerAlias www.second.com 
        ErrorLog  /var/log/apache2/[your app name]_error.log
        CustomLog /var/log/apache2/[your app name]_access.log combined
    
    </VirtualHost>
    

    将两个域指向你的 symfony 服务器的同一个 IP

    【讨论】:

    • 谢谢。您是否知道将 www.second.com/login 之类的请求路由到 www.first.com/second/login 的方法,即将“second”放入 www.first.com 域上请求的 url 中?
    • 我不明白你想做什么,这样做的目的是什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-05
    • 1970-01-01
    • 2014-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多