首页 > 解决方案 > ColdFusion - Web 服务器 - 目录服务 - IIS

问题描述

不确定这是在根目录中的 ColdFusion Application.cfm 中还是通过 IIS 网络服务器控制的。

但我正在尝试使用相同的 ColdFusion 代码从 1 个根网站设置多个子站点,然后通过嗅探 URL 来设置不同的数据源,即:www.root.com/bob并使用 cgi.http_host。

所以我可以使用相同的代码和不同的 URL,例如:

      www.root.com
      www.root1.com
      www.root2.com

但是我每次都需要在网络服务器中设置一个单独的站点(这很好并且可以理解)。

但我想在同一个根网站上但在一个子目录上运行相同的代码。所以我想运行:

      www.root.com/test
      www.root.com/test2
      www.root.com/test3
      www.root.com/newsignup

然后所有这些子目录都可以运行相同的代码,而无需在 IIS 中设置多个网站。

使用 ColdFusion 很容易做到这一点吗?还是全部是 IIS 映射?

标签: iiscoldfusioniis-8coldfusion-2016

解决方案


您的代码位于类似

E:\path\to\wwwroot

在 IIS 中,您有一个站点设置,该文件夹作为 Web 根目录。该网站有一个主域

www.someDomain.com

然后你想在不同的域下提供相同的代码:

在 IIS 中,您必须将它们设置为站点的域别名。在 IIS 管理器中查找“绑定”。您也可以通过编辑website.config将在您的 Web 根目录中创建的文件来执行此操作。

如果您需要为每个域加载不同的设置,则必须更新您的应用程序。我通常设置将这些域列表映射到它们的设置的数据库表。这样您就可以查找cgi.http_host并缓存设置。

<cfif !structKeyExists(application.settings, cgi.http_host)>
    <!--- Look up settings, then cache them here. --->
    <cfset application.settings[cgi.http_host] = ...>
</cfif>

现在,您可以在同一代码库中引用每个域的设置。


推荐阅读