gpt4 book ai didi

asp.net - 仅当重写的目标 URL 存在时,如何使用 ISAPI-Rewrite 重写 URL?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:47:13 26 4
gpt4 key购买 nike

或者相反,如何重写一个不存在的URL?例如,拦截 404。

这是上下文:我们正在慢慢地将我们的网站从 ASP classic 迁移到 ASP.NET。慢慢地,我的意思是将 9000 多个 .asp 页面一次一页地转换为 .aspx。

在执行此操作时,我们希望防止任何损坏的链接以及避免在搜索引擎中失去任何排名。这意味着我们所有的 .asp URL 必须继续存在,即使它们将由 .aspx 页面提供服务。

我希望能够做的是拥有 ISAPI-Rewrite 规则,它将重写 .asp -> .aspx 除非目标 URL 实际上不存在,在这种情况下它只会执行并返回 .asp .

因此,如果我们还没有将 somepage.asp 转换为 .aspx,则 URL 不会被重写并且会显示 somepage.asp。一旦 somepage.asp 消失,URL 将被重写为 somepage.aspx,它将被执行并返回,但网络浏览器/搜索引擎会认为它收到了 somepage.asp。

在未来的某个时候,我们会设置 canonical url在 .aspx 页面中,让搜索引擎在方便时 catch 。

注意:我已经尝试在 IIS 上使用自定义 404 检查文件系统并执行 Server.Transfer(如果目标 .aspx 页面存在),但是您无法从 asp classic 传输到 asp.net。 (你得到“指定的'Page Language =“c#”'选项未知或无效。错误'8000d001'”)唯一可行的方法是如果我们进行301/302重定向而不是Server.Transfer,那就是此时对我们来说是不可取的。 (管理层偏执,说不是一个选择。)

最佳答案

就个人而言,如果内容正在移动,您会希望编写一个进程来执行 301 重定向以指示页面已移动到新位置。确实如此。

这将确保新内容得到适当的索引和链接。

关于asp.net - 仅当重写的目标 URL 存在时,如何使用 ISAPI-Rewrite 重写 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4693709/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com