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

Return 410 Error Based on Part of Query String in ASP.NET MVC

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

为什么?我们每天都会收到来自信誉良好的机器人程序(例如 Google、Bing、雅虎)的数百次垃圾点击,因为我们网站上从未有过可笑的命名页面。我在想,对于这些页面中的大多数,我可以测试给定的关键短语是否存在,如果存在,return 410。我想 return 410 告诉机器人他们可以永久删除他们的列表,从而提供逐渐改进的 SEO 环境。

这是我们收到的一些 URL 示例,其中包含我要测试的关键短语(以粗体显示)。

https://www.example.com:443/apple-touch-icon-precomposed.png

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

我知道这在其他编程环境中使用 .htaccess 非常可行,所以我希望 ASP.MVC.

也有一个优雅的解决方案

您可以使用 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>