理论上我在我的托管中设置了两个子域:
subdomain1.mydomain.com
subdomain2.mydomain.com
subdomain2
有一条CNAME
记录,指向外部服务。
mydomain.com
有robots.txt
,可以为所有内容编制索引。
subdomain2.mydomain.com
有一个robots.txt
,允许根据CNAME
记录编制索引。
如果我设置了从subdomain1.mydomain.com
到subdomain2.mydomain.com
的转发,如果访问robots.txt
的链接,会使用subdomain1.mydomain.com
?在涉及CNAME
时,域转发的工作方式与robots.txt
记录的工作方式相同吗?
答案 0 :(得分:1)
这取决于您的服务器设置。
采取以下配置,例如:
C:\Users\your_profile\\.ipython\profile_default
在这种情况下,我们会将所有从c = get_config()
c.InteractiveShell.ast_node_interactivity = "all"
重定向到server {
server_name subdomainA.example.com;
listen 80;
return 302 http://subdomainB.example.com$request_uri;
}
。这将包括您的subdomainA.example.com
文件。
但是,如果您的配置设置为仅重定向某些部分,则subdomainB.example.com
文件只会在列表中重定向。如果您仅重定向,例如robots.txt
。
请注意,如果您不返回302但只使用不同的根(例如robots.txt
且/someFolder
是不同的子域但提供相同的内容),那么您的subdomainA
内容将会由根目录决定。
因此,如果我正确理解您的配置,subdomainB
将使用robots.txt
中的subdomain1
。
答案 1 :(得分:1)
您遇到的挑战是从您尝试配置的任何软件的角度来看待事物,但搜索引擎和其他机器人只会看到他们从中加载的文档URL(就像任何其他具有Web浏览器的用户一样)。也就是说,搜索引擎会尝试加载http://subdomain1.mydomain.com/robots.txt
和http://subdomain2.mydomain.com/robots.txt
,这取决于您(通过配置您的服务器正在运行的任何软件),以确保这些服务器实际上是为您服务的想。
CNAME只是在加载浏览器应该查看的IP以解析域名时添加重定向的一种方法。机器人在解析名称时会使用它来找出"真实的"要连接的IP,但它与GET /robots.txt
请求连接到服务器后的操作没有任何关系。
就"转发"而言,该术语可能意味着不同的事情,因此您需要知道浏览器或机器人在请求页面时会收到什么。如果它正在执行301或302重定向以将客户端发送到另一个URL,那么您可能会从不同的搜索引擎获得有关他们如何尊重这一点的不同结果,特别是如果它被重定向到一个完全不同的领域。我可能会试图避免它,只是因为很多机器人写得不好。某些搜索引擎可以使用工具来帮助您确定抓取工具读取robots.txt
网址的方式,例如Google's tool。