【问题标题】:How can I make three apps using same domain name work together如何使三个使用相同域名的应用程序一起工作
【发布时间】:2016-06-26 20:33:54
【问题描述】:

喂,

我有 3 个应用程序,我必须让它们在不相互干扰的情况下运行。我正在开发一个客户端(注册后)可以拥有子域的应用程序。为此,我使用的是 dns 通配符

流程是:

  1. 我在 xxx.de(wp 演示网站)上有公司网站 - 第一个虚拟主机

…… 服务器名称 xxx.de ......

  1. 用户在主要公司网站上注册自己。注册后,在第二个应用程序(zend 应用程序 - 具有子域的应用程序)上创建一个新的数据库条目.. 基本上创建用户的配置文件并保存在数据库历史配置文件子域中:client1.xxx.de、client2.xxx.de 等。 ..

…… 服务器名称 *.xxx.de ……

    1234563 m 重定向到主 xxx.de 网站。
  1. 在同一台服务器上,我还有另一个应用程序的测试版本,使用相同的域名 testingapp2.xxx.de

…… 服务器名称 testingapp2.xxx.de ……

:) 你已经猜到了...因为第二个应用程序现在第三个无法正常工作,因为在第二个应用程序上,如果有与请求的子域匹配的客户端并重定向到,我总是在数据库中检查主要公司网站。

让所有 3 个或更多应用程序一起工作的解决方案是什么?

谢谢

【问题讨论】:

    标签: dns wildcard subdomain virtual-hosts


    【解决方案1】:

    您可能只需要考虑应用 URL 规则的顺序。 如果您创建特殊情况子域的列表,则应在检查用户 ID 之前检查这些子域。

    检查您的用户 ID(通配符)应该是默认选项。有点像这个伪代码:

    if ((URL.startsWith(xxx.de) || URL.startsWith(www.xxx.de))
     serve wp_presentation_website 
    else if (URL.startsWith(testingapp2.xxx.de)) // you can add more of these
     serve testingapp2
    else serve client_profile // if this fails, it should still redirect home
    

    我不完全确定您在哪里检查或您使用的是什么语言,所以希望这适用。如果它类似于 .htaccess 列表,只需在设置通配符之前明确设置“特殊应用”的路径即可。

    希望有帮助!

    【讨论】:

      【解决方案2】:

      喂,

      不工作我认为解决方案是通过配置 apache vhosts 在服务器端,但仍然没有弄清楚:(

      更新:

      一种解决方案是强制 apache 读取第一个 testingapp2.xxx.de 虚拟主机,方法是从以下位置重命名 vhost 文件:

      testingapp2.xxx.de 到 0testingapp2.xxx.de

      还有其他解决方案吗? .. 这似乎只是一个 hack

      【讨论】:

        猜你喜欢
        • 2019-09-15
        • 2018-03-20
        • 2018-04-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-23
        • 2016-11-08
        相关资源
        最近更新 更多