c# - 标题中的 URL 重写和 html 规范链接,以避免搜索引擎出现重复页面问题

标签 c# asp.net url url-rewriting seo

我正在使用 Intelligenicai.URLRewriter.dll 重写我的网站 URL 它工作正常我按照以下链接作为示例

http://anupkumargupta.wordpress.com/2011/05/28/url-rewriting-with-urlrewriter-net-simplest-way-asp-net-c-sql-blog/

在我读到的另一篇文章中,URL 重写会给搜索引擎带来问题,因为现在我们可以使用两个不同的 URL 访问同一页面,一个没有 URL 重写,一个有 URL 重写。 (检查此链接 http://thecodebug.com/?p=296)

上面提到的链接讨论了搜索引擎如果在网站上发现重复内容会受到惩罚。这篇文章 (http://thecodebug.com/?p=296) 讨论了“标题中的 html 规范链接”,如果我们不添加它们,那么我们可以告诉搜索引擎这个 url 是规范的。

现在我的问题是这适用于即使我使用 Intelligenicai.URLRewriter.dll,如果这是事实,我应该采取什么预防措施来避免这种情况。

我的网址示例 使用 URL 重写 http://www.xyz.com/Article/en-US/19/87/let-the-spirit-of-our-nation s-founders-guide-us.aspx

没有重写的 URL http://www.xyz.com/Article/ArticleDetails.aspx?Language=en-US&PageID=19&ArticleID=87

部分web.config

  <rewriter>
    <rewrite url="~/Article/(.+)/(.+)/(.+)/(.+).aspx" to="~/ArticleDetails.aspx?Language=$1&amp;PageID=$2&amp;ArticleID=$3" processing="stop"/>
  </rewriter>

最佳答案

您可以添加 2 条规则:一是将新式链接重写为物理 URL 然后停止处理规则,然后遵循一条规则将对 aspx 页面的直接请求重写为新式 URL,301 永久重定向,并停止处理规则。 301重定向很重要!如果您无法通过重写 DLL 做到这一点,那么您可以将 URL 重定向到一个特殊的隐藏页面,该页面将接受旧页面作为查询字符串或查看引荐来源网址,然后使用301 重定向到那里。

更新:这里有更多信息:

使用 Intelligenica UrlRewriter,您将按以下顺序设置两个规则:

第一条规则使用您已经设置的规则将奇特的 URL 重定向到物理文件。

第二条规则采用物理文件的路径,并且 (a) 404 或 (b) 301 永久 重定向到花哨的 URL。如果您有一个页面提供多页内容,您最好停止处理并出现 404 错误。此外,只要您从不在站点的任何地方使用旧式链接,就应该没问题。如果您在任何时候使用旧样式的链接(在重写 URL 之前),您肯定需要确保重写设置为重定向或 404 页面,以便强制使用新样式的 URL。

<rewriter>
    <rewrite url="~/Article/(.+)/(.+)/(.+)/(.+).aspx" to="~/ArticleDetails.aspx?Language=$1&amp;PageID=$2&amp;ArticleID=$3" processing="stop"/><!-- rewrites URL -->
    <rewrite url="~/ArticleDetails.aspx?Language=(.+)&amp;PageID=(.+)&amp;ArticleID=(.+)" to="~/Article/$1/$2/$3.aspx" processing="stop" permanent="true" /><!-- Redirects old page to new url with 301 -->
</rewriter>

希望这对您有所帮助。

关于c# - 标题中的 URL 重写和 html 规范链接,以避免搜索引擎出现重复页面问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10476724/

相关文章:

c# - 转换来自不同时区的时间,包括夏令时

c# - 删除 xml :base attribute from an XDocument

c# - 带有 ASP.NET MVC 的 Entity Framework

c# - 针对非异步服务的异步编程

url - 为什么腾讯微博和百度贴吧链接失效了?

php - 菜鸟 URL 重写

http - 如何阻止 nginx 将图像 URL 视为实际文件?

c# - 为什么我的C#gzip生成的文件比Fiddler或PHP大?

c# - 如何在 XAML 中为动态修改的 ObservableCollection 设置 DataContext

javascript - 使用 jQuery 将无序列表所选项目传递到 ASP.NET Web 窗体