iis - 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 映射?
解决方案
您的代码位于类似
E:\path\to\wwwroot
在 IIS 中,您有一个站点设置,该文件夹作为 Web 根目录。该网站有一个主域
www.someDomain.com
然后你想在不同的域下提供相同的代码:
- www.anotherDomain.com
- myCFsite.someExistingSite.com
- myCFsite.anotherExistingSite.com
- www.YetAnotherDomain.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>
现在,您可以在同一代码库中引用每个域的设置。
推荐阅读
- sql-server - 如何在公共交通数据中获取用户的传输时间?
- terraform - 无法通过 terraform 为 Azure 虚拟机设置动态 IP
- types - f# 表达式的类型
- kotlin - 下面代码的 reader.next()[0] 行中 [0] 的作用是什么
- c - 为了让我的 C 程序更加用户友好,需要进行哪些更改?
- c# - 不支持 WCF 服务操作类型
- javascript - Nodejs,如何在同一行显示和更新文本,例如运行时钟或下载速度?
- perl - 我可以用perl中的子类比较来调用超类排序吗?
- qt - 如果在 QWidget 中创建 QQuickWidget,则 Qt qml 崩溃
- html - 如何创建包含 4 个部分的页面布局?