Coldfusion 将子域连接到FW1中的子系统

Coldfusion 将子域连接到FW1中的子系统,coldfusion,coldfusion-9,fw1,Coldfusion,Coldfusion 9,Fw1,我已在我的应用程序中设置了一个子系统: example.com/index.cfm/subsys:foo/bar 我想做的是将子域映射到该子系统,以消除对路径中的子系统规范的需求 subsys.example.com/index.cfm/foo/bar 目前,我们通过IIS6为FW1应用程序提供服务,但可能会迁移到Apache,因此两种版本的解决方案都是可以接受的。使用Apache,您可以执行以下操作: RewriteCond %{HTTP_HOST} ^(subsys)\.example\

我已在我的应用程序中设置了一个子系统:

example.com/index.cfm/subsys:foo/bar
我想做的是将子域映射到该子系统,以消除对路径中的子系统规范的需求

subsys.example.com/index.cfm/foo/bar
目前,我们通过IIS6为FW1应用程序提供服务,但可能会迁移到Apache,因此两种版本的解决方案都是可以接受的。

使用Apache,您可以执行以下操作:

RewriteCond %{HTTP_HOST} ^(subsys)\.example\.com
RewriteRule /index.cfm/(.*) /index.cfm/%1:$1
要使用多个子域/子系统,请在括号内使用管道分隔列表:

RewriteCond %{HTTP_HOST} ^(sub1|sub2|sub3)\.example\.com
要使其适用于任何非www子域,请使用以下条件:

RewriteCond %{HTTP_HOST} ^((?!www\.)\w+)\.


对于IIS6,您可能需要第三方软件,例如,它支持mod_rewrite语法。

我遇到过这个解决方案,我唯一的不满是它是静态的。我的意思是,定义中必须有主机名。这使得跨多个域运行变得很困难(我们为本地开发、登台和生产绑定了不同的域),但是,如果没有其他问题出现,这可能就是我最终要做的,您不必在那里有主机名-您可以将第一行修改为类似
^((!www)\w+)的内容\.
使其适用于任何非www子域。那么我是否能够将子域与子系统动态匹配?这听起来很神奇,但我不太确定你在问什么?通过使用RewriteCond中的捕获组加上RewriteRule中的%1链接子域(与规则本身中捕获组的常规$1相反)。