gpt4 book ai didi

redirect - 网站 web.config > 是否可以将不正确的子域重定向到某个页面?

转载 作者:行者123 更新时间:2023-12-03 06:37:36 25 4
gpt4 key购买 nike

是否可以将不正确的子域(不存在的子域)重定向到某个页面(自定义错误页面)?

编辑:使用 web.config 文件

例如,如果我输入 http://foo.squishling.co.uk/它会重定向到类似 http://squishling.co.uk/errors/incorrect_subdomain.html/ 的内容,如http://foo.squishling.co.uk/不是正确的子域。

我还没有看到任何执行此操作的代码,这可能吗?
编辑:如果不可能,请说出来

提前致谢,~ 压扁

编辑:如果这是可能的,一种可能的方法是当服务器收到对不正确子域的请求时,只需欺骗该请求来请求错误页面

最佳答案

是的,这是可能的。以下是使用 IIS 10 + UrlRewrite 2.1 的方法。

出于示例目的,我们假设我有:

  • 有效的域/端口 good.localhost:81
  • 我的自定义错误文件@ /error.txt

第 1 步:设置网站绑定(bind)以接受子域请求

IIS 管理器 -> 网站上下文菜单 -> “编辑绑定(bind)..”编辑接受的主机名以接受 *.<yourDomain> 。对于示例情况: enter image description here

详细步骤可以在文档页面 "Wildcard Host Header Support" 找到.

现在网站应该响应 http://good.localhost:81以及 http://bad.localhost:81 .

第二步:安装Url重写模块

您可以从这里找到 URL 重写模块安装程序: https://www.iis.net/downloads/microsoft/url-rewrite

第三步:配置重定向规则

虽然您可以使用 IIS MANager 的 GUI 来实现此目的,但您也可以将如下内容手写到您的 web.config 中:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="DirectBadSubdomainsRule" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTP_HOST}" pattern="^good\.localhost:81" negate="true" />
</conditions>
<action type="Redirect" url="http://good.localhost:81/error.txt" redirectType="Temporary" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>

您可以使用正则表达式的强大功能来确定哪些子域有效,哪些子域无效。您还可以准确决定所需的重定向代码。上面的示例使用临时重定向 (HTTP307)。

这里有很多文档:https://www.iis.net/downloads/microsoft/url-rewrite

测试

不良域名现在应该返回重定向响应:

  1. http://bad.localhost:81/correct.txt -> HTTP307
  2. http://good.localhost:81/error.txt -> HTTP200

关于redirect - 网站 web.config > 是否可以将不正确的子域重定向到某个页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45920328/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com