我们有一个简单的基于 php 的重定向应用程序。
这是一个例子:
Spiderman.com/redirection/redirect-to-marvel/
php 脚本位于“redirection”文件夹中,假设它将上述链接重定向到 marvel.com
NOW...
如果我想创建一个完全不同的子域,名为尝试.superman.com使用 CNAME 重定向到Spiderman.com/重定向/这样如果我打开这个网址:
try.superman.com/redirect-to-marvel/它实际上会转发到Spiderman.com/redirection/redirect-to-marvel/这当然会将其转发给漫威网
简而言之,浏览器将显示 try.superman.com/redirect-to-marvel/ (由于 CNAME),但是我如何在服务器端检测来自 CNAME 记录的传入请求,并将其路由到正确的地址本地文件夹?
这里只需要一些指导...
PHP dns_get_record + htaccess 方向正确吗?
需要注意的一个重要区别是,CNAME 和重写/重定向(或虚拟主机)是完全不同的东西,经常会被混淆。
CNAME 是一个 DNS 实体,因此您可以有多个名称指向单个地址。例如,bob.example.com 是位于 1.2.3.4 的主机。然后,您可以为 alice.example.com 创建一个 CNAME,该 CNAME 指向 bob 进行 DNS 解析并返回相同的 IP 地址。
重定向是一种 HTTP 方法,用于接收到达特定位置的请求(http://bob.example.com/index.html)并向浏览器返回一条指令去其他地方(http://alice.example.com/somewhereelse.html)客户端浏览器显示的内容。
重写是一种 HTTP 方法,用于获取到达特定位置的请求,更改它,然后将其发送到应答服务器,而不必让客户端的浏览器知道它已经发生。
虚拟主机(vhost 等...同一功能有不同的名称)是一种 HTTP 方法,允许您通过查看请求使用的名称(通常是通过检查 HTTP 主机标头)以不同的方式应答请求这包含在每个请求中。以上面为例:客户请求http://alice.example.com,它通过 DNS 解析为 1.2.3.4,因为 alice 是 bob.example.com 的 CNAME。该请求到达相同的 IP 地址 1.2.3.4,但在那里运行的 Web 服务器使用 /alice 而不是 /bob 下的内容来应答该请求。
希望有帮助
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)