Nginx Drupal Aegir-符号链接文件目录和multisite robots.txt

Nginx Drupal Aegir-符号链接文件目录和multisite robots.txt,nginx,drupal-7,robots.txt,Nginx,Drupal 7,Robots.txt,我正在使用Aegir/Barracuda/Nginx来维护多站点设置。我的“文件”目录被符号链接到挂载的“文件”目录。因此,当我克隆一个用于开发目的的站点时,它使用相同的“文件”目录。当前使用sites/mydomain/files作为robots.txt位置的做法存在的问题是,我无法在新克隆的开发站点中设置自定义方向,以停止爬虫表单索引,从而因内容重复而受到惩罚。对我来说有解决办法吗 我的文件目录几乎必须进行符号链接,因为它包含大量媒体文件,每次我克隆一个站点时都要重新创建整个“文件”目录是没

我正在使用Aegir/Barracuda/Nginx来维护多站点设置。我的“文件”目录被符号链接到挂载的“文件”目录。因此,当我克隆一个用于开发目的的站点时,它使用相同的“文件”目录。当前使用sites/mydomain/files作为robots.txt位置的做法存在的问题是,我无法在新克隆的开发站点中设置自定义方向,以停止爬虫表单索引,从而因内容重复而受到惩罚。对我来说有解决办法吗


我的文件目录几乎必须进行符号链接,因为它包含大量媒体文件,每次我克隆一个站点时都要重新创建整个“文件”目录是没有意义的。

仔细考虑后,您甚至不必让Drupal Aegir处理请求。这是一个纯文本文件,根本不需要Drupal Aegir引导。让nginx直接处理请求

server {
    server_name server2;
    root /var/server2;

    # Tell nginx that a request to the robots.txt in the files directory should
    # be matched against the robots.txt in our document root.
    location = /files/robots.txt {
        alias $document_root/robots.txt;
    }

    # Directly deliver the robots.txt, no need to bootstrap Drupal Aegir.
    location = /robots.txt {
        try_files $uri =404;
    }

    location / {
        # your normal stuff
    }
}

? 我不清楚。包括克隆站点在内的所有站点都位于同一台服务器上?所有克隆的站点共享相同的“文件”文件夹。换句话说。克隆的站点共享媒体文件。克隆站点用于开发,而主站点用于生产。这就是为什么我不希望克隆的网站被搜索引擎抓取。Aegir/provision的维护人员已决定,对于多站点安装,robots.txt的位置应在sites/mydomain/文件中。但由于我的文件目录被所有网站共享,这对我来说不起作用。我扩展了我的答案,使之更加详细。谢谢!这段代码是否进入了/etc/nginx/nginx.conf或/var/aegir/.drush/provision/http/provision/Service/http/nginx.conf?这段代码所替换的内容是否也是“#您的普通内容”?Doh!我刚刚意识到我是多么愚蠢。(非常尴尬)如果我简单地将所有开发站点克隆到不同的平台和域名,我就可以完全避免将robots.txt放在域/文件中,而只将其保留在平台根目录中。无论如何,我会把你的答案标记为正确,因为你确实回答了我最初提出的问题。