SEO公司要求将每个404不良请求重定向到特定URL。我要求将错误重定向400(不良请求(到特殊页面。
我可以在web.config文件中执行此操作,但是要求的每个URL到特殊页面例如https://stackoverflow.com/questions/askhttps://stackoverflow.com/questions/questions/ask =>(301(https://stackoverflow.com/questions/questions/askhttps://stackoverflow.com/questionshtps://stackoverflow.com/questions =>(301(https://stackoverflow.com/questions
有可能吗?我的应用程序是IIS服务器上的ASP.NET(不是MVC(
谢谢
caveat:
您说这是" ASP.NET(不是MVC("。我将假设这意味着您使用的是WebForms,而不是ASP.NET核心。在两种情况下都可以使用以下建议,但是在ASP.NET核心的情况下,只有在您与IIS托管时。
答案:
您正在寻找IIS URL重写,该模块可以安装在IIS中,然后通过您的web.config
配置。此提供的一项功能是重写地图,它本质上是和和到 url映射的列表,其中对前者的请求将导致后者重定向。URL重写映射的文档在这里,这是文档中的一个示例:
定义您的映射:
<rewrite>
<rewriteMaps>
<rewriteMap name="StaticRewrites" defaultValue="">
<add key="/article1" value="/article.aspx?id=1&title=some-title" />
<add key="/some-title" value="/article.aspx?id=1&title=some-title" />
<add key="/post/some-title.html" value="/article.aspx?id=1&title=some-title" />
</rewriteMap>
</rewriteMaps>
</rewrite>
然后添加一个重写规则以使用您刚定义的映射:
<rules>
<rule name="Rewrite Rule">
<match url=".*" />
<conditions>
<add input="{StaticRewrites:{REQUEST_URI}}" pattern="(.+)" />
</conditions>
<action type="Rewrite" url="{C:1}" />
</rule>
</rules>
在您的情况下,您需要使用Redirect
操作而不是Rewrite
。
该模块提供了许多其他配置选项。
在ASP.NET WebForms上设置一个页面,即redirect.aspx重定向类型400的所有错误:
<configuration>
<system.web>
<customErrors defaultRedirect="Error.htm"
mode="RemoteOnly">
<error statusCode="400"
redirect="Redirect.aspx"/>
</customErrors>
</system.web>
然后在页面上,请参见以下网址:
Request.UrlReferrer
然后相应处理