【问题标题】:How to perform dynamic URL rewrite...in code如何在代码中执行动态 URL 重写...
【发布时间】:2023-04-10 20:24:01
【问题描述】:

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

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

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

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

技术方面,我无法访问 IIS,我在运行 IIS 的共享服务器上,我的主要应用程序堆栈是 Coldfusion10。谢谢

【问题讨论】:

  • 如果您可以访问 IIS,您可以创建一个名为“JimsAutoShop.com”的站点,它的根目录是 [...]/mysites.com/wwwroot/JimsAutoShop/。由于您在共享服务器上,我认为这是不可能的,但您仍然可以询问托管服务提供商。
  • 谢谢朱尔斯。好吧,因为他们想要屏蔽的这些域可能有数百个,所以我认为即使主机会给我那种水平的能力也是可行的。我只是要告诉他们不,我们无法完成他们的要求
  • 这可能会更好。无论如何,您都会被 SE 标记为重复内容。

标签: url iis url-rewriting coldfusion


【解决方案1】:

我不相信这是可能的。当您的服务器端语言获取代码时,所有内容都已在 Web 服务器上处理完毕。没有什么可重写的。从技术上讲,您可以使用 Javascript 执行此操作,但它只是视觉上的,实际上不会更改 URL。 (不确定您是否可以直观地更改域,但我不明白为什么不这样做。我以前使用 URL 的其他部分做过)。基本上你会这样做:https://developer.mozilla.org/en-US/docs/Web/API/History_API

如果需要这样做,web.config 路由是可行的方法。我有一个应用程序,当使用应用程序中的某些表单更新数据时,我会抓取 web.config 并编辑其中一个重写地图。

但我不太确定这是您需要的。如果您希望域 www.JimsAutoShop.com 仅从您的服务器中提取文件,只需编辑 DNS 以指向您的服务器。不需要重写/重定向。这就是网站应该如何运作的方式。

【讨论】:

  • 谢谢 Leeish。在这种情况下,他们可能希望我的内容显示为数以千计的潜在域,因此在此处实际托管信息并不实际。我不是 100% 肯定他们为什么认为这是一个优势,但他们问了所以我想我会在这里问,以防有人知道我没有想到的方式。我只是非常犹豫是否要定期编辑 web.config 文件,因为一个小事故破坏了我的大部分网站。
  • 也许我不太明白,但您不能访问 bobssite.com 并让它显示为 Facebook.com。它只是不能那样工作。
  • 对。我不是 100% 确定为什么这个功能对他们也很重要。我想既然“jim”是他们的客户,他们想尝试让内容看起来像是“jim”,但我不会担心。谢谢大家
猜你喜欢
  • 2010-12-14
  • 2020-03-18
  • 2014-11-21
  • 1970-01-01
  • 1970-01-01
  • 2010-10-22
  • 1970-01-01
  • 2019-11-15
相关资源
最近更新 更多