ColdFusion URL查询和使用
我希望使用“虚荣”URL重定向到登录页面,上面有公司徽标 URL类似于:ColdFusion URL查询和使用,coldfusion,Coldfusion,我希望使用“虚荣”URL重定向到登录页面,上面有公司徽标 URL类似于:companyname.domain.com 首先,我需要查询请求的URL以查看“companyname”是否存在,然后 提供自定义登录页(如果存在)-或- 如果没有,则显示错误页 真正的目的地实际上类似于www.domain.com/folder/。但是,我需要在整个应用程序中显示“虚荣”URL。例如: companyname.domain.com/clients/?id=somevariable&...
companyname.domain.com
首先,我需要查询请求的URL以查看“companyname”是否存在,然后
www.domain.com/folder/
。但是,我需要在整个应用程序中显示“虚荣”URL。例如:
companyname.domain.com/clients/?id=somevariable&...
我知道,经过一段时间的反复试验,我可能会找到答案。但是作为一名自学成才的CFER,我想就如何“正确地”完成这项任务获得一些建议。这就是我最终完成我所期待的工作的原因。谢谢大家的意见 首先,我向domain.com区域添加了一个DNS a记录,如下所示:*此处为站点ip地址
<cfscript>
siteDomainName = cgi.http_host;
if (ListLen(siteDomainName, '.') gt 2) {
siteDomainName = ListFirst(siteDomainName,'.');
}
</cfscript>
<cfif siteDomainName NEQ "www">
<cfquery name="qUrl" datasource="#dsn#">
SELECT id, pre
FROM table
WHERE pre = <cfqueryparam value="#siteDomainName#" cfsqltype="cf_sql_varchar">
</cfquery>
<cfif qUrl.recordCount GT 0>
<cflocation url="/folder/" addtoken="false">
<cfelse>
<cflocation url="http://www.domain.com/error.cfm" addtoken="false">
</cfif>
</cfif>
siteDomainName=cgi.http\u主机;
if(ListLen(siteDomainName,“.”)gt 2){
siteDomainName=ListFirst(siteDomainName,'.');
}
选择id,pre
从桌子上
其中pre=
如果有人对如何做得更好有任何意见,我总是想学习一些新的东西。这里有几个不同的元素。你在问什么?是否要从域名中提取
companyname
?您想知道基本的分支逻辑和变量设置是如何工作的吗(因为这基本上就是您要问的)。你不能真的问“我怎么写我的应用程序?”你需要问一些特定的问题。这通常在web服务器(IIS、apache或其他)中处理。如果您只是想重定向,使用直接的CF解决方案很容易,但是在整个应用程序中显示虚荣的要求可能是您想要在web服务器中解决的问题。没有这个“虚荣URL”,这很容易做到。如上所述的基本重定向。但我被要求创建这个“屏蔽”URL,并希望以前可能做过类似工作的人提供一些信息。我不是问“我该如何编写我的应用程序?”。应用程序已经编写好了。我在寻找我从未尝试过的方向。我们正在使用IIS7。将*.domain.com发送到IIS中的domain.com,然后使用CF中的CGI.HTTP_主机来确定使用了什么,以及它是否应该显示登录屏幕或错误。感谢大家提供的快速建议。在接下来的几天里,当我回到“这个”项目时,我将测试彼得建议的解决方案。和往常一样,我感谢你们花时间提供的知识。你们可以将ListGetAt简化为ListFirst(siteDomainName')。
此外,HTTP_主机来自客户端,所以你们不能相信它包含的内容;这可能是一个好主意。哦,你已经有了类似于的,但没有通配符-可以使用=
,或者在字符串末尾添加%
,以执行“从开始”测试。谢谢Peter。我感谢你的反馈。