特定域的htaccess标头?

时间:2018-03-13 07:12:58

标签: .htaccess

我有三种环境:

env.com
env-uat.com
env-pre.com

所有三个页面都运行相同的代码。我希望env-uat.com和env-pre.com都能在htaccess中获得这个:

Header set X-Robots-Tag "noindex, nofollow"

这将有效地完全取消索引这些页面,包括PDF文件等。但我不想影响env.com。

如何才能为env-uat.com和env-pre.com以及NOT env.com添加标题X-Robots-Tag?

**更新**

从目前为止我发现的情况来看,你似乎只能做this之类的事情:

SetEnvIf Request_URI "^/privacy-policy" NOINDEXFOLLOW
Header set X-Robots-Tag "noindex, follow" env=REDIRECT_NOINDEXFOLLOW

但这使得它特定于PAGE。我希望它特定于DOMAIN。

2 个答案:

答案 0 :(得分:3)

@Starkeen就在这里:

SetEnvIf host ^(env-uat\.com|host2\.com)$ NOINDEXFOLLOW

因此,您可以包含您希望参与此Env的域名,如下所示:

SetEnvIf host ^(env-uat|env-pre)\.com NOINDEXFOLLOW

然后你应该用这样的名字附上Env:

Header set X-Robots-Tag "noindex, follow" env=NOINDEXFOLLOW

不喜欢这样:

Header set X-Robots-Tag "noindex, follow" env=REDIRECT_NOINDEXFOLLOW

上面的一行将会看到Env它的名字是REDIRECT_NOINDEXFOLLOW而不是NOINDEXFOLLOW,这个问题X Robots Tag noindex specific page是不同的  那是关于与Request_URI和特殊情况的匹配。

因此,代码应如下所示:

SetEnvIf host ^(env-uat|env-pre)\.com NOINDEXFOLLOW
Header set X-Robots-Tag "noindex, follow" env=NOINDEXFOLLOW

答案 1 :(得分:2)

您可以使用Host指令与SetEnvIf标头匹配。

要使Header X-Robots-Tag仅适用于特定主机(env-uat.com),您可以使用以下内容:

SetEnvIf host ^env-uat\.com$ NOINDEXFOLLOW
Header set X-Robots-Tag "noindex, follow" env=REDIRECT_NOINDEXFOLLOW

要使其可用于多个主机,您可以使用以下内容:

SetEnvIf host ^(env-uat\.com|host2\.com)$ NOINDEXFOLLOW
Header set X-Robots-Tag "noindex, follow" env=REDIRECT_NOINDEXFOLLOW