将subdomain.example.orgredirect到隐藏给用户的somethingelse.com?

我对C-NAMESA-RECORDS ,名字服务器等等知之甚less,所以我只需要忍耐一下:

我想将subdomain.example.orgredirect到另一个域somethingelse.com。 我拥有两个域名,两个域名都在共享主机上运行。 当创build一个子域名时,我所能做的就是做一个HTTPredirect(302,yuck!)或者一个框架redirect。
我也可以设置一个主机上的DNSlogging,如名称服务器, CNAME – 但我会知道我在做什么。

请向我解释如何使用名称服务器的路由工作,以及我应该如何(即使不能用我当前的主机)将subdomain.example.orgredirect到somethingelse.com,用户可见的URL位于“subdomain.example.org”

名称服务器不会路由任何内容。 名称服务器响应名称请求,并最终返回一个IP。 CNAMElogging会返回一个名称,然后查找该名称以获取IP。 你唯一能做的事情就是确保你的DNS名字被设置,返回一个服务器的IP地址,这个服务器将接受stream量并做你想做的事情。

如果您使用基于名称的虚拟主机设置来设置Web服务器,并且该虚拟主机的主名称是somethingelse.com那么您可以为该虚拟主机subdomain.example.org设置一个附加名称。 在DNS中,您将logging设置为返回为somethingelse.com服务的虚拟主机的IP。

somethingelse.com上托pipe的网站必须尽可能使用相对链接,否则用户将很快意识到他们现在已被切换到不同的域。

…这是至关重要的一点。 我该怎么做?

只需创build一个Alogging,将名称与IP关联,或者将CNAMElogging指向指向所需IP的Alogging。

DNS什么都不知道。 你要求的东西需要在HTTP服务器上处理。

否则,我可以指导我的域名在google.com,并使其看起来像它是我的网站?

您可以将DNSlogging指向您喜欢的任何IP地址。 在HTTP的情况下,请求的一部分包含您尝试访问的主机名。 Googlenetworking服务器可能会根据HTTP请求的主机名select拒绝。

如果您是Google Apps客户,甚至可以设置DNS名称指向Google的服务器。 你最需要遵循的一个程序告诉Google你将使用什么名字来用于特定的页面。 然后谷歌相应地调整他们的configuration。

如果您使用的其他协议不包含用于访问的主机名,那么服务器将无法知道是什么。 您可以通过创build像googledns.example.org IN A 8.8.8.8这样的logging,然后运行ping googledns.example.org ,Google的DNS服务器将对ping进行响应。 您用于ping命令的名称根本不包含在ICMP回显应答中,只包含IP地址。

为什么你不能在子域名所在的文件夹中设置一个.htaccess文件(301redirect)

例如:

  1. 在文件夹example.org/subdomain中创build一个.htaccess文件
  2. 根据上面的文件夹在Cpanel中设置你的子域名
  3. 编辑新的.htaccess文件并添加下面的代码

    redirect301 / http://somethingelse.com

用/作为你的子域的根目录,并且http://somethingelse.com就是你想要发送的地方。

为我工作。

唯一完整的解决scheme是设置一个Web服务器来侦听“subdomain.example.org”,并通过HTTPredirect将其redirect到“somethingelse.com”。

如果您使用cname将“subdomain.example.org”指向“somethingelse.com”,则Web浏览器将与Web服务器进行“somethingelse.com”对话,但会显示“我在寻找subdomain.example”。 org“,它可能没有configuration。 如果你可以configurationWeb服务器接受这两个URL,那么CNAME将正常工作。

使用CNAMES的DNSredirect将无法按照您希望它们在共享主机上的方式工作。

对于我们的目的,假设您有一个subdomain.example.org的“CNAME”logging,指向somethingelse.com,somethingelse.com的logging是“A”。 当您访问subdomain.example.com时,首先查询DNS服务器以确定正确的IP地址。 DNS服务器将看到CNAMElogging,并recursion确定somethingelse.com的IP地址,然后将其返回到您的桌面。

您的浏览器将会联系该IP地址,它会要求subdomain.example.com。 事实上,它甚至不知道somethingelse.com存在。

如果你有一个专用的盒子,你可以让CNAMEs像你认为的那样工作,但是你会丧失使用基于名字的虚拟主机的能力。 使用基于IP的虚拟主机时,指向给定IP的任何域都将提供相同的内容。

要让浏览器的地址栏在从somethingelse.com提供页面的时候说subdomain.example.org,您可以重新考虑使用主机提供的框架redirect。

如果您的主机提供mod_proxy,另一种可能性是在subdomain.example.com的虚拟主机configuration中设置反向代理:

 ProxyPass / http://somethingelse.com/ ProxyPassReverse / somethingelse.com/ 

这将导致subdomain.example.com提供somethingelse.com的内容,同时仍然报告subdomain.example.com作为源域。