【发布时间】:2014-09-13 18:18:55
【问题描述】:
我有一个网站,其中包含不同位置的链接,每个链接都将用户带到特定的文档。
这些链接是硬编码的,这使得网站的每次更新都非常困难。
最近文档已更新,我们希望将每个旧链接更新为相应的新链接。
例如
(http://www.domain.com/OnlineDoc/default.aspx#ItemID=3551)
需要更新到
(http://domain.docfactory.com/#!doc/Toolkits/Item1-Administration-Doc)
使用ItemID 确定每个项目文档。
我正在尝试以编程方式将每个旧链接重定向到它对应的新链接。
我尝试使用 URL Rewrite 模块,但它似乎忽略了“#”之后的所有内容,这很重要,因为它决定了我们需要指向哪个文档。
我的问题是:
URL 重写模块可以工作吗? (有一个带有“#”的片段)
如果没有,Http 模块可以工作吗?
我正在尝试找到一种方法来轻松更新链接,而无需访问每个 Web 应用程序 HTML 并手动进行。
【问题讨论】:
-
片段未发送到服务器。它只能由浏览器访问。因此,您需要一个涉及客户端的解决方案。但是您可以将 URL 重写模块与 OnlineDoc/default.aspx 中的客户端脚本结合使用,该脚本将片段放在路径中,或者使用临时客户端重定向来查询 URL 的一部分。这使得文档项 ID 对 URL 重写模块可见,该模块可以执行永久的服务器端重定向到正确的 URL。不过,用户的体验可能有点出乎意料。
-
@bzlm 非常感谢,我会试试看。你能解释一下这种体验是如何出乎意料的吗?
-
@bzlm 效果很好,我的老板很喜欢!!!我们将测试它几天。再次感谢您提出此解决方案。
-
很高兴它成功了。我已将其转换为正确的答案 - 如果它对您有帮助,它可以帮助其他人。