【问题标题】:How to move a URL for a ASP.NET MVC Site如何移动 ASP.NET MVC 站点的 URL
【发布时间】:2011-12-10 02:10:56
【问题描述】:

我的 SEO 同事已经解雇了一些涉及移动的 url 请求

www.mydomain.co.uk/news
www.mydomain.co.uk/news/{id}/{title}

www.mydomain.co.uk/uk-news
www.mydomain.co.uk/uk-news/{id}/{title}

执行此操作的最佳方法是什么。

我只是想在 global.asax 文件中更改路由

来自:

    routes.MapRoute(
      "News", // Route name
      "News", // URL with parameters
      new { controller = "News", action = "Index" } // Parameter defaults
    );

到:

routes.MapRoute(
  "News", // Route name
  "uk-news", // URL with parameters
  new { controller = "News", action = "Index" } // Parameter defaults
);

并在基本的 www.mydomain.co.uk/news 上设置 301 重定向

有没有更好的方法来做到这一点?

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-2 url-rewriting url-routing


    【解决方案1】:

    我不这么认为。您在正确的轨道上,更改路由上的 URL 并执行 301 永久重定向是要走的路。对于 301 尝试使用 URL 重写模块。

    重写模块

    <!-- Web.config file in subdirectory to be redirected -->
    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
      <system.webServer>
        <rewrite>
          <rules>
            <rule name="RedirectRule" stopProcessing="true">
              <match url="(.*)" ignoreCase="true" />
              <action type="Redirect" url="http://www.newdomain.com/{R:1}" redirectType="Permanent" />
                <conditions>
                    <add input="{HTTP_HOST}" pattern="www\.old-domain\.com" />
                </conditions>
            </rule>
          </rules>
        </rewrite>
      </system.webServer>
    </configuration>
    

    ISAPI_Rewrite

    RewriteCond Host: ^mydomain\.co.uk
    RewriteRule /news http://www.mydomain.co.uk/uk-news [I,O,RP,L] 
    

    我(忽略大小写)

    表示无论大小写都匹配字符。此标志影响 RewriteHeader 指令和所有相应的 RewriteCond 指令。

    O(正则化)

    在处理之前规范化字符串。规范化包括删除 URL 编码、非法字符等。此外,URI 的 IIS 规范化完全删除查询字符串。因此,如果需要查询字符串,则不应使用规范化。此标志对 URL 和 URL 编码的标头很有用。

    RP(永久重定向)

    与 [R] 标志几乎相同,但发出 301(永久移动)HTTP 状态代码而不是 302(临时移动)。

    L(最后一条规则)

    在此停止重写过程,不再应用任何重写规则。

    【讨论】:

    • 感谢您的回复,我只是想知道重写模块是否可以在 IIS 6 上工作?
    • 哇,不。我将 isapi_rewrite 用于我们的 iis 6 实例:/ 你可以查看它但它不是免费的,免费的是 iirf.codeplex.com 试试看。
    • 我有一个ISAPI_Rewrite配置文件,重写条件是什么?对不起,我不熟悉 ISAPI_rewrite
    猜你喜欢
    • 2012-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    • 2011-12-07
    相关资源
    最近更新 更多