【问题标题】:ASP.NET MVC 3 URL redirect without URLRewrite没有 URLRewrite 的 ASP.NET MVC 3 URL 重定向
【发布时间】:2015-04-18 07:00:55
【问题描述】:

我的 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。但现在它没有重定向。

【问题讨论】:

  • 何时何地需要重定向?
  • 实际上,我的 SEO 专家告诉我添加“301 重定向”脚本,我真的不知道如何处理他的建议。
  • 按照您所说的安装模块并导入规则的最简单方法:iis.net/learn/extensions/url-rewrite-module/… 或者,您始终可以创建简单的 HttpModule,它将执行重定向
  • 我不允许将模块安装到 IIS,所以你能告诉我更多关于如何创建简单的 HttpModule 的信息吗?

标签: asp.net-mvc url-rewriting


【解决方案1】:

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

  • RedirectToRoutePermanent
  • 永久重定向
  • RedirectToActionPermanent

这是一个例子:

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

或用于从控制器返回 ActionResult 类型:

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

【讨论】:

  • 我正在替换这个项目中以前的编码器,我是这个 MVC 世界的新手。你的建议很好,但我不知道我需要在哪里写这些回复,尤其是上面提到的帽子重写条件。
猜你喜欢
  • 1970-01-01
  • 2012-11-29
  • 1970-01-01
  • 1970-01-01
  • 2019-01-13
  • 1970-01-01
  • 1970-01-01
  • 2011-12-22
  • 1970-01-01
相关资源
最近更新 更多