Seo公司要求将每个404错误请求重定向到特定网址。 我要求将错误400(错误请求)重定向到特殊页面。
我可以在web.config文件中执行此操作,但要求是每个url到特殊页面 例如 https://stackoverflow.com/questions/askhttps://stackoverflow.com/questions/ask =>(301)https://stackoverflow.com/questions/ask https://stackoverflow.com/questionshttps://stackoverflow.com/questions => (301)https://stackoverflow.com/questions
有可能吗? 我的应用程序是IIS SERVER上的ASP.NET(非MVC)
由于
答案 0 :(得分:0)
<强>警告:强>
你说这是&#34; ASP.NET(不是MVC)&#34;。我将假设这意味着您使用WebForms而不是ASP.NET Core。在这两种情况下都可以使用以下建议,但只有在您使用IIS托管的情况下才能使用ASP.NET Core。
<强>答案:强>
您正在寻找IIS URL Rewrite,这是一个可以安装在IIS中然后通过web.config
进行配置的模块。这提供的一个功能是重写映射,它基本上是从和到 URL映射的列表,其中对前者的请求将导致重定向到后者。 documentation for URL Rewrite maps is here,这是文档中的一个示例:
定义映射:
<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
。
该模块提供了许多其他配置选项。
答案 1 :(得分:0)
在asp.net webforms上设置一个页面,即Redirect.aspx,以重定向所有类型400的错误:
<configuration>
<system.web>
<customErrors defaultRedirect="Error.htm"
mode="RemoteOnly">
<error statusCode="400"
redirect="Redirect.aspx"/>
</customErrors>
</system.web>
然后在页面上看到它来自的Url:
Request.UrlReferrer
然后相应地处理