【问题标题】:ASP.NET Basic URL Rewriting or code in master pageASP.NET 基本 URL 重写或母版页中的代码
【发布时间】:2014-07-02 22:17:18
【问题描述】:

我正在更新我的网站,其中一些 URL 已更改,一些已被删除。我想将访问旧网址的人从搜索引擎重定向到新网址。

我可以在我的母版页代码中很容易地做到这一点,或者我相信我可以使用 ASP.NET URL 重写,但我以前没有使用过 URL 重写。有人可以建议我应该走哪条路线吗?

如果 URL 重写在我的场景中是最好的,请有人提供一个简单的例子。

谢谢

【问题讨论】:

    标签: asp.net url-rewriting master-pages


    【解决方案1】:

    建议您在这些情况下使用 301 永久重定向 - 这可以通过 URL 重写或仅 IIS 7 - 8 中的 HTTP 重定向功能来完成。我认为在这种情况下使用重写的好处是事实您可以使用正则表达式搜索/替换或重写地图,而不是硬编码的 URL 或文件夹结构。我的建议是对少量 URL 使用 HTTP 重定向模块,或者对需要更多灵活性和可编程性的大量 URL 使用 URL 重写。

    301 指示搜索引擎该 URL 已永久更改,它不应降低您的页面排名,同时还会在将来更新为新 URL。

    这是一篇关于使用 301 的 URL 重写模块的 StackOverflow 帖子:

    URL Rewrite Maps (iis.com)

    URL Rewrite and 301 redirects (stackoverflow.com)

    使用 HTTP 重定向,我不认为您可以像使用 URL 重写那样进行复杂的搜索/替换,但您可以告诉它在某个 URL 下拥有所有内容、转到不同的 URL 或在特定 URL 下的所有内容文件夹以转到另一个特定的 URL/文件夹。这是inetmgr.exe中HTTP重定向模块的截图:

    【讨论】:

    • 感谢您的详细回答(+1),但@Ali 的解决方案非常简单。
    【解决方案2】:

    您可以使用 web.config 文件将以前的 URL 重定向到新位置。

    这是将 URL 重定向到 Web.config 文件中的另一个位置的示例:

    <system.webServer>
      <rewrite>
        <rule name="redirect to sign-in" stopProcessing="true">
          <match url="previous-folder/SignIn.aspx"/>
          <action type="Redirect" url="http://newWebSite.com/SignIn.aspx" redirectType="Permanent"/>
        </rule>
      </rewrite>
    </system.webServer>
    

    【讨论】:

    • 感谢您的回答。在相关说明中,是否有一种简单的方法可以将以下示例 URL:~/article.aspx?id=123 重写为:~/article/article-title-here.aspx~/article/article-title-here/
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-28
    • 2013-12-22
    • 1970-01-01
    • 1970-01-01
    • 2010-12-14
    • 2013-05-12
    • 2012-07-10
    相关资源
    最近更新 更多