2016-08-23 42 views
0

我被問到如果我可以設置一種方式 - 動態 - 動態做一個URL重寫。如何執行動態URL重寫...在代碼

我對URL重寫的經驗主要是使用基本上靜態的web.config文件,我提前知道我支持的條件是什麼。但在這種情況下,我正在與一位向我發送有關其客戶的數據的合作伙伴合作,並且當我的網站用戶被髮送到其中一個頁面時,他們希望我重寫URL,以使其看起來像他們的客戶的網址,而不是我的。

例如:在我的網站上搜索Jim的汽車店,當我顯示我的(他們)有關Jim的汽車店的內容時,網址不會顯示在我的網站上,它會顯示「www.JimsAutoShop.com」當它真的在「wwww.mysite.com/JimsAutoShop」

我想每當我們的合作伙伴推送我們的數據在需要時,我可以重寫web.config文件添加一個部分,但我真的不不知道這是個好主意。有沒有辦法通過代碼動態地做到這一點,當我從搜索查詢我的數據庫,並看到我需要掩蓋的URL,我可以做到這一點?

明智的技術,我沒有訪問IIS,我在運行IIS的共享服務器上,我的主應用程序堆棧是Coldfusion10。謝謝

+0

如果您有權訪問IIS,您可以啓動一個名爲「JimsAutoShop.com」的網站,並且它的根目錄是[...]/mysites.com/wwwroot/JimsAutoShop/目錄。既然你在共享服務器上,我認爲這是不可能的,但你仍然可以問託管服務提供商。 – Jules

+0

謝謝朱爾斯。那麼因爲可能有數百個這些領域要掩蓋,所以即使主持人給我這種能力,我也不認爲這是可行的。我只是告訴他們不,我們不能完成他們的請求 –

+0

這可能是更好的。無論如何,SE會標記重複的內容。 – Jules

回答

2

我不相信這是可能的。在您的服務器端語言獲取代碼時,所有內容都已在Web服務器上處理完畢。沒有什麼可以重寫。你可以在技術上用Javascript做到這一點,但它只是在視覺上,它實際上不會改變URL。 (不知道你可以在視覺上改變域名,但我不明白爲什麼,我之前已經使用URL的其他部分)。下面是你將如何做到這一點本質上:https://developer.mozilla.org/en-US/docs/Web/API/History_API

如果這需要做,但web.config路線是要走的路。我有一個應用程序,在應用程序中使用某些表單更新數據時,我會抓取web.config並編輯其中一個重寫映射。

但我不太確定那是你需要的。如果您希望域名www.JimsAutoShop.com僅從您的服務器提取文件,只需編輯DNS以指向您的服務器。不需要重寫/重定向。這就是網站應該如何運作。

+0

謝謝Leeish。在這種情況下,可能會有數千個他們希望我的內容顯示的潛在域名,因此在那裏實際託管信息並不現實。我不是100%確定他們爲什麼認爲這是一個優勢,但他們問,所以我想我會問在這裏,以防有人知道我沒有想到的方式。我只是非常猶豫,經常編輯web.config文件,因爲這個小小的不幸事件打破了我的大部分網站。 –

+4

也許我並不完全明白,但你不能訪問bobssite.com並將其顯示爲Facebook.com。它只是不這樣工作。 – Leeish

+0

對。我不是100%確定爲什麼這個功能也很重要。我想,因爲「吉姆」將是他們的客戶,他們想要嘗試使內容看起來像是「吉姆」,但我不會擔心它。謝謝大家 –