错误400不良请求 - 个人重定向



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&amp;title=some-title" />
            <add key="/some-title" value="/article.aspx?id=1&amp;title=some-title" />
            <add key="/post/some-title.html" value="/article.aspx?id=1&amp;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

然后相应处理

最新更新