如何在代码中执行动态URL重写

如何在代码中执行动态URL重写,url,iis,url-rewriting,coldfusion,Url,Iis,Url Rewriting,Coldfusion,有人问我是否可以设置一种动态地重写URL的方法 我在URL重写方面的经验主要是使用基本上是静态的web.config文件,在这些文件中,我提前知道我所支持的条件。但在这种情况下,我正在与一位合作伙伴合作,他正在向我发送有关其客户机的数据,当我网站的用户被发送到其中一个页面时,他们希望我重写URL,使其看起来像他们客户机的URL,而不是我的URL 示例:在我的网站上搜索Jim的汽车店,当我显示我(他们)关于Jim汽车店的内容时,URL不会出现在我的网站上,而是显示“www.JimsAutoShop

有人问我是否可以设置一种动态地重写URL的方法

我在URL重写方面的经验主要是使用基本上是静态的web.config文件,在这些文件中,我提前知道我所支持的条件。但在这种情况下,我正在与一位合作伙伴合作,他正在向我发送有关其客户机的数据,当我网站的用户被发送到其中一个页面时,他们希望我重写URL,使其看起来像他们客户机的URL,而不是我的URL

示例:在我的网站上搜索Jim的汽车店,当我显示我(他们)关于Jim汽车店的内容时,URL不会出现在我的网站上,而是显示“www.JimsAutoShop.com”,而实际上是“wwww.mysite.com/JimsAutoShop”

我想每次我们的合作伙伴将我们的数据推送到需要的地方,我都可以重写web.config文件,为这种情况添加一个部分,但我真的不知道这是个好主意。有没有一种方法可以通过代码动态地实现这一点,当我从搜索中查询我的数据库并看到我需要屏蔽URL时,我可以这样做


就技术而言,我没有访问IIS的权限,我在运行IIS的共享服务器上,我的主要应用程序堆栈是Coldfusion10。谢谢

我认为这是不可能的。当服务器端语言获得代码时,所有内容都已在web服务器上处理。没有什么可重写的。从技术上讲,您可以使用Javascript来实现这一点,但这只是视觉上的,实际上不会改变URL。(不确定您是否可以直观地更改域,但我不明白为什么不可以。我以前在URL的其他部分也做过)。下面是您基本上是如何做到这一点的:

但是,如果需要这样做,web.config路径就是一条出路。我有一个应用程序,当使用应用程序中的某些表单更新数据时,我会抓取web.config并编辑其中一个重写映射


但我不太确定你需要什么。如果您希望域www.JimsAutoShop.com仅从您的服务器中提取文件,只需编辑DNS以指向您的服务器。不需要重写/重定向。这就是网站的工作原理。

我认为这是不可能的。当服务器端语言获得代码时,所有内容都已在web服务器上处理。没有什么可重写的。从技术上讲,您可以使用Javascript来实现这一点,但这只是视觉上的,实际上不会改变URL。(不确定您是否可以直观地更改域,但我不明白为什么不可以。我以前在URL的其他部分也做过)。下面是您基本上是如何做到这一点的:

但是,如果需要这样做,web.config路径就是一条出路。我有一个应用程序,当使用应用程序中的某些表单更新数据时,我会抓取web.config并编辑其中一个重写映射


但我不太确定你需要什么。如果您希望域www.JimsAutoShop.com仅从您的服务器中提取文件,只需编辑DNS以指向您的服务器。不需要重写/重定向。这就是网站的工作原理。

谢谢Leeish。在这种情况下,可能有数千个潜在的域,他们希望我的内容显示为,因此,实际上在那里托管信息是不实际的。我不是100%确定他们为什么认为这是一种优势,但他们问了,所以我想我会在这里问,以防有人知道我没有想到的方法。我只是很犹豫是否要定期编辑web.config文件,因为一个小事故破坏了我的大部分网站。也许我不太明白,但你不能访问bobssite.com并让它显示为Facebook.com。这样不行,对。我不能100%确定为什么这个功能对他们也很重要。我想既然“jim”是他们的客户,他们就想尝试让内容看起来像是“jims”,但我不会担心。谢谢,谢谢,利什。在这种情况下,可能有数千个潜在的域,他们希望我的内容显示为,因此,实际上在那里托管信息是不实际的。我不是100%确定他们为什么认为这是一种优势,但他们问了,所以我想我会在这里问,以防有人知道我没有想到的方法。我只是很犹豫是否要定期编辑web.config文件,因为一个小事故破坏了我的大部分网站。也许我不太明白,但你不能访问bobssite.com并让它显示为Facebook.com。这样不行,对。我不能100%确定为什么这个功能对他们也很重要。我想既然“jim”是他们的客户,他们就想尝试让内容看起来像是“jims”,但我不会担心。感谢您,如果您有权访问IIS,您可以创建一个名为“JimsAutoShop.com”的网站,其根目录为[…]/mysites.com/wwwroot/JimsAutoShop/。由于您在共享服务器上,我认为这是不可能的,但您仍然可以询问主机提供商。谢谢Jules。既然他们想要屏蔽的域名可能有上百个,我认为这是行不通的,即使主机会给我这样的能力。我只想告诉他们不,我们不能完成他们的要求,这可能是更好的。你会被SE标记为内容重复。如果你有权访问IIS,你可以启动一个名为“JimsAutoShop.com”的网站,它的根目录是[…]/mysites.com/wwwroot/JimsAutoShop/。由于您在共享服务器上,我认为这是不可能的,但您仍然可以询问主机提供商。谢谢Jules。既然他们想要屏蔽的域名可能有上百个,我认为这是行不通的,即使主机会给我这样的能力。我只想告诉他们不,我们不能完成他们的要求,这可能是更好的。无论如何,你都会被SE标记为重复内容。