django – Nginx:交替域的不同robots.txt
|
摘要 我有一个内部和外部域指向它的单个Web应用程序,我希望robots.txt阻止对内部域的所有访问,但允许所有访问外部域. 问题细节 我有一个简单的Nginx服务器块,我曾用它代理Django应用程序(见下文).如您所见,此服务器块响应任何域(由于缺少server_name参数).但是,我想知道如何标记特定域名,例如Nginx将为他们提供自定义robots.txt文件. 更具体地说,域example.com和www.example.com将提供htdocs目录中的默认robots.txt文件. (因为设置了“root / sites / mysite / htdocs”并且robots.txt文件位于/sites/mysite/htdocs/robots.txt) 但是,我还希望域“example.internal.com”(它指的是与example.com相同的服务器)提供自定义的robots.txt文件;我想创建一个自定义robots.txt,以便google不会将该内部域编入索引. 我想到了重复服务器块并在其中一个服务器块中指定以下内容.然后以某种方式覆盖该服务器块中的robots.txt查找.
但是为了这个目的而重复整个服务器块似乎并不是很干. 我还想过可能会使用if语句来检查主机头是否包含内部域.然后以这种方式提供自定义robots.txt文件.但是Nginx说If Is Evil. 为内部域提供自定义robots.txt文件的好方法是什么? 谢谢您的帮助. 这是我正在使用的服务器块的代码示例.
最佳答案
您可以使用map来定义条件变量.在服务器指令外添加:
然后变量可以像
现在,您可以在根目录中拥有两个robots.txt文件: (编辑:东莞站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- apache-2.2 – 使用Nginx作为apache的反向代理或独立使用
- 退回到Nginx中的默认/共享文件
- 如何在Nginx中为所有服务器设置默认指令? (Plesk的问题)
- node.js-使用Nginx乘客时如何在节点Express应用程序中查看c
- nginx – 许多408请求从相同的IP超时
- 如何在一个容器中使用Nginx,在另一个容器中使用php-fpm?
- 网络 – 诊断Ubuntu中的数据包丢失/高延迟
- 使用Nginx,fastcgi和php设置开发环境时,我从php服务器收到“
- 是否可以在不安装卷的情况下将请求传递给php-fpm
- nginx-Flask send_from_directory用于媒体文件
