如何在同一个网站上为 http 和 https 提供不同的 robots.txt?

如何在同一个网站上为 http 和 https 提供不同的 robots.txt?

我有一个由 Apache 提供服务的小型网站(我不能把 Nginx 放在前面,也不能将 Apache 更改为任何东西),并且它设置为通过 http 和 https 为同一个网站提供服务(到目前为止没有重定向 http->https,因此 http 和 https 版本都是并行提供的)。

.htaccess我需要的是通过 http 和 https设置相同的 URI 来提供不同的文本文件?

比如说http://example.com/proto.txt“该网站通过 http 提供”,而另一些https://example.com/proto.txt则会说“该网站通过 https 提供服务”。

答案1

使用别名

创建两个文件,robots.txt 和 robots_http.txt 并将其添加到您的 http VirtualHost:

Alias "/robots.txt" "/path/to/documentroot/robots_http.txt"

答案2

如果您不能或不愿意更改“主” Apache 配置但需要在文件中进行更改.htaccess,则可以使用RewriteRule检查RewriteCondHTTPS 的。

大致如下:

RewriteEngine On

RewriteCond %{HTTPS} "on"
RewriteRule robots.txt robots_https.txt [L]

应该可以工作(我没有测试过)。

请注意,这是基于 Apache 本身执行 HTTPS 终止。如果在它之前的反向代理上执行了 HTTPS 终止,则情况可能会有所不同(并且取决于反向代理和 Apache 的配置)。

相关内容