没有URLRewrite的ASP.NET MVC 3 URL重定向

时间:2015-04-17 13:04:01

标签: asp.net-mvc url-rewriting

我在IIS中有ASP.NET MVC 3项目。我需要实现301重定向,我有这样的样本

RewriteEngine On
RewriteCond %{HTTP_HOST} ^mysite.ua$ [NC]
RewriteCond %{REQUEST_URI} !^/robots.*
RewriteRule ^(.*)$ http://www.mysite.ua/$1 [R=301,L]

有没有办法在MVC 3中实现这样的功能而不向IIS添加URLRewrite模块?

好的,所以我安装了URLRewrite,这是我的web.config

<rewrite>
            <rules>
                <rule name="Imported Rule 1" stopProcessing="true">
                    <match url="^(.*)$" ignoreCase="false" />
                    <conditions logicalGrouping="MatchAll">
                        <add input="{HTTP_HOST}" pattern="^example.com$" />
                        <add input="{URL}" pattern="^/robots.*" ignoreCase="false" negate="true" />
                    </conditions>
                    <action type="Redirect" url="http://www.example.com/{R:1}" redirectType="Permanent" />
                </rule>
            </rules>
        </rewrite>

我需要将此内容从example.com重定向到www.example.com。但现在它没有重定向。

1 个答案:

答案 0 :(得分:2)

由于您使用的是MVC 3,因此您可以在控制器中永久使用三种重定向方法(301):

  • RedirectToRoutePermanent
  • 永久重定向
  • RedirectToActionPermanent

以下是一个例子:

Response.RedirectPermanent("http://www.google.com"); 

或从控制器返回ActionResult类型:

return RedirectPermanent("http://www.google.com");