ColdFusion URL查询和使用

ColdFusion URL查询和使用,coldfusion,Coldfusion,我希望使用“虚荣”URL重定向到登录页面,上面有公司徽标 URL类似于:companyname.domain.com 首先,我需要查询请求的URL以查看“companyname”是否存在,然后 提供自定义登录页(如果存在)-或- 如果没有,则显示错误页 真正的目的地实际上类似于www.domain.com/folder/。但是,我需要在整个应用程序中显示“虚荣”URL。例如: companyname.domain.com/clients/?id=somevariable&...

我希望使用“虚荣”URL重定向到登录页面,上面有公司徽标

URL类似于:
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。我感谢你的反馈。