我正在尝试使用带有 HTTP 的 URI 记录https://en.wikipedia.org/wiki/URI_record
在 Cloudflare 上我输入sub
了Name
但是https://example.com/page/
如果Content
我去https://sub.example.net
它说curl: (6) Could not resolve host: sub.example.net
答案1
目的
RFC 7553 记录的目的URI
不是为了取代HTTP 重定向,但作为 S-NAPTR 的补充(5.2),取代U-NAPTR(5.3) 并替换SRV
(5.4) 记录类型。我认为预期目的最好用第 2 节:
一般而言,客户端会将 URI 记录用于已知相关协议的应用程序,但例如需要额外的抽象才能将域名与服务点(由 URI 寻址)分开。这种情况的一个例子是,一个组织有许多域名,但只有一个官方网页。
就像记录一样SRV
,这要求设计一个应用程序来使用URI
记录来查找此信息。Web 浏览器不遵循 URI 记录甚至不会尝试解决它们。HTTP 协议根本不使用URI
记录,并且 Web 浏览器遵循该协议。
用法
正如 Michael Hampton 在评论中提到的,我从未见过使用URI
记录的服务、协议或应用程序。例如,SRV 记录的维基百科文章有用法部分列出了一些使用SRV
资源记录类型的协议,但截至 2020 年 7 月,记录文章URI
甚至没有类似的部分。没有人使用这种记录类型。
语法
这第 2 节继续:
应用程序需要知道在主机名前添加的特定服务。
有一个例子第 5.1 节:
一个组织有域名
example.com
和example.net
,他们的 FTP 存档位于ftp://ftp1.example.com/public
。给定服务名称ftp
和传输协议tcp
(来自 IANA“服务名称和传输协议端口号注册表”),可以在相应区域(example.com 和 example.net)中提供以下 URI 资源记录:$ORIGIN example.com. _ftp._tcp IN URI 10 1 "ftp://ftp1.example.com/public" $ORIGIN example.net. _ftp._tcp IN URI 10 1 "ftp://ftp1.example.com/public"
让我们想象一下Web 浏览器已采用 RFC 7553URI
记录。在这种情况下,URI
HTTP 服务的记录sub.example.net
将位于_http._tcp.sub.example.net
:
_http._tcp.sub.example.net. IN URI 10 1 "https://example.com/page/"
由于语法错误,您所配置的内容将无法按预期工作。
如何实现您想要的功能
一般来说,你需要创建一个 HTTP/HTTPS 服务,sub.example.net
用以下方式回复301 Moved Permanently
(RFC 7231, 6.4.2) 或者302 Found
(6.4.3) 和Location
(7.1.2) 包含https://example.com/page/
;简而言之,HTTP 重定向。
使用 Cloudflare,可以使用以下方式配置 HTTP 重定向Cloudflare 页面规则。