2012-10-17 41 views
0

我正在尋找使用「虛榮」網址重定向到登錄頁面,上面帶有公司徽標。ColdFusion URL查詢和使用

的URL會是這樣的:companyname.domain.com

首先,我需要查詢請求的URL,看看是否「公司名稱」的存在,那麼無論

  1. 服務自定義登錄頁面,如果它的存在 - OR-
  2. 如果不顯示錯誤頁面。

真正的目的地實際上是類似於www.domain.com/folder/。但是,我需要在整個應用程序中顯示「虛榮」URL。例如:

companyname.domain.com/clients/?id=somevariable&... 

我知道我可以在一段時間內通過反覆試驗找出它。但是作爲一名自學成才的CF-er,我想在「正確的方式」上得到一些關於這個任務的建議。

+1

這裏有幾個不同的元素。你在問什麼?你想從域名中提取'companyname'嗎?你想知道基本的分支邏輯和變量設置是如何工作的(因爲基本上你在問什麼)。你不能問「我怎麼寫我的應用程序?」你需要提出具體的問題。 –

+1

這在網絡服務器(IIS,apache或其他)中更常用。如果您只是想重定向,那麼使用直接的CF解決方案就足夠簡單了,但要求它在整個應用程序中顯示虛榮心,這可能是您想要在Web服務器中解決的問題。 – invertedSpear

+1

沒有這個「虛榮網址」,這很容易做到。一個基本的重定向,如上所述的invertedSpear。但是我被要求讓這個「蒙面」URL發生,並希望以前可能做過這樣的事情的人提供一些輸入。我不問,「我怎麼寫我的應用程序?」。該應用程序已被寫入。我正在尋找一些我從未嘗試過的東西。我們正在使用IIS7。 – lmtony

回答

1

這就是我最終做我想要的。感謝所有的投入。

首先,我添加了一個DNS A記錄,以這樣domain.com區域:*站點的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> 

如果任何人有怎麼可能一直在做的更好任何意見,我一直在尋找新的東西。

+1

您可以將ListGetAt簡化爲'ListFirst(siteDomainName,'。')' 此外,HTTP_HOST來自客戶端,因此您不能相信它包含的內容; [cfqueryparam](http://cfdocs.org/cfqueryparam)可能是一個好主意。 –

+1

哦,你已經有'LIKE',但沒有通配符 - 要麼使用'='來代替,要麼在字符串的末尾添加'%'來做一個「開頭」測試。 –

+0

謝謝彼得。我很欣賞這些反饋。 – lmtony