基于ASP.NET MVC中的部分查询字符串返回410错误

时间:2017-07-09 03:44:34

标签: asp.net-mvc-5 query-string iis-8 http-status-code-410

寻找我们可以在ASP.NET MVC-5 IIS-8站点中使用的方法,根据查询字符串中包含的短语列表返回410错误响应(消失)。

为什么呢?我们从信誉良好的机器人(例如谷歌,必应,雅虎)那里收到了几百个每日垃圾邮件,这些邮件是我们网站上从未有过的荒谬命名页面。我认为,对于大多数这些页面,我可以测试一个给定的关键词是否存在,如果存在,则返回410.我想返回410告诉机器人他们可以删除他们的永久上市,从而提供逐步改善的SEO环境。

以下是我们将以粗体测试的关键短语接收的一些网址示例。

https://www.example.com:443/苹果触摸 -icon-precomposed.png

http://ww.w.example.com:80/ zdjqhhmtkatt html的

我知道这在其他编程环境中非常适合.htaccess,所以我希望它也是ASP.MVC的优雅解决方案。

1 个答案:

答案 0 :(得分:0)

您可以使用URL rewrite模块执行此操作。 web.config中的规则应该是这样的:

<rewrite>
    <rules>
        <rule name="410response" stopProcessing="true">
            <match url=".*" />
            <conditions logicalGrouping="MatchAny">
                <add input="{REQUEST_URI}" pattern="apple-touch" />
                <add input="{REQUEST_URI}" pattern="zdjqhhmtkatt" />
            </conditions>
            <action type="CustomResponse" statusCode="410" statusReason="System unavailable" statusDescription="Gone. The requested resource is no longer available." />
        </rule>
    </rules>
</rewrite>