![]() |
1
1
对于额外的评论,我认为你需要做的是咬紧牙关,修改CMS,把新的链接写进页面。你已经说过,你有正常的网址重写,可以把新的网址转换成旧的时候,他们来了。如果还要在标记中写出新的url,那么一切都应该正常工作。 从搜索引擎优化的角度来看,如果你的CMS产生的网页有旧的链接,那么这就是搜索引擎将看到和索引。你对此无能为力,javascript,重定向或者其他。(尽管一个永久的重定向会让你有一点进步)。 Fiddler 或者另一个http调试器来查看当您跟踪其中一个链接时会发生什么。 canonical link tag 从旧网址返回到新网址。 |
![]() |
2
3
如果你使用ii7,最简单的方法就是使用 URL Rewrite Module 根据这个链接你可以
否则,您将不得不使用Andrew M描述的技术或使用Response.Redirect。无论如何,我相当肯定所有这些方法都会导致http 301响应。我之所以提到这一点,是因为不清楚为什么不想做Response.Redirect。这是编码约束吗? 由于使用的是IIS 6,因此需要使用另一种方法重写URL。
性能 例如,这些url的页面加载差异不明显 "https://stackoverflow.com/q/4144940/119477" "https://stackoverflow.com/questions/4144940/url-rewrite-without-redirect-in-asp-net"
页面排名 This is 谷歌的网站管理员中心网站要说的是301。
|
![]() |
3
1
我不确定你在说什么,但基本上用户已经在阅读的页面包含一个旧的,长的,URL,你希望它在浏览器从服务器请求页面之前,在客户端动态地更改为新的,短的URL?
听起来更像是你想要的URL路由,包括在ASP.Net 4和3.5中? 标准URL重写修改服务器上的传入请求对象,以便客户端浏览器提交新URL,下游页面处理程序查看旧URL。我相信路由技术也将这个概念扩展到了传出响应,在将响应页面中的旧url发送到客户端之前,将它们重写为新url。 Scott Gu在这里讨论这个主题: http://weblogs.asp.net/scottgu/archive/2009/10/13/url-routing-with-asp-net-4-web-forms-vs-2010-and-net-4-0-series.aspx Scott Gu还有一篇关于普通URL重写的旧文章,概述了几种不同的重写方法。也许您可以通过挂接到Application_PreSendRequestContent并手动修改响应流中的所有href值来扩展这个概念,但我自己并不喜欢它。 http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx |