c# - 是否可以根据 ASP.NET/IIS 中的用户代理进行条件 URL 重写?

标签 c# asp.net iis iis-7 url-rewriting

我工作的网站托管的内容不断被抓取并发布到其他地方。

是否可以重写 URL,以便普通用户和白名单爬虫可以查看网站,但阻止无法识别的浏览器访问?

最佳答案

是的,您可以使用 URL 重写模块 来做到这一点(我使用的是 v2 .. 但它也应该适用于 v1.x,尽管我没有 v1.x 可以测试) :

<system.webServer>
    <rewrite>
        <rules>
            <rule name="UserAgentRedirect" stopProcessing="true">
                <match url="^(.*)$" />
                <conditions>
                    <add input="{HTTP_USER_AGENT}" pattern="(iphone|ipod)" />
                </conditions>
                <action type="Rewrite" url="/special-page.aspx" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>

根据上述规则,所有来自 iPhone 或 iPad(或任何其他在用户代理字符串中包含 iphoneipod 的浏览器/应用程序)的请求都将被重写(内部重定向) ) 到 /special-page.aspx

关于c# - 是否可以根据 ASP.NET/IIS 中的用户代理进行条件 URL 重写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6689436/

相关文章:

c# - 将 GitLab Web 应用程序部署到 Azure 应用程序服务

c# - 如何从 asmx Web 服务管理多个 ado.net 数据库连接

c# - 异步方法不需要额外的线程?

c# - 如何获取剪贴板粘贴通知并提供我自己的数据?

c# - 如何在 NUnit 3 中使用 ITestEventListener?

c# - 将计算列用于 ID 时出现存储过程错误

css - ASP.NET MVC - 将 CSS 添加到您的 View 中(在 View 内部而不是外部 .css 文件)

从 2.2 迁移到 3.1 的 ASP.Net Core 解决方案在发布时不会运行

asp.net - 每个浏览器的首次加载缓慢或一段时间后加载缓慢

C# 日历转换返回 System.ArgumentOutOfRangeException