2016-08-23 19 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%确定为什么这个功能也很重要。我想,因为“吉姆”将是他们的客户,他们想要尝试使内容看起来像是“吉姆”,但我不会担心它。谢谢大家 –