使用除 robots.txt 之外的虚拟主机进行重定向

Posted

技术标签:

【中文标题】使用除 robots.txt 之外的虚拟主机进行重定向【英文标题】:redirecting with virtual hosts except robots.txt 【发布时间】:2012-08-09 23:29:25 【问题描述】:

我遇到了一个复杂的 seo 问题,谷歌已经从我的一个域名服务器中索引了数千个页面。我需要重定向每个请求 301 除了 robots.txt

这是我到目前为止所拥有的,但它不起作用。注释掉的部分是我最初放置的部分(有效),除了它不考虑 robots.txt。下面的两行是我的失败尝试

<VirtualHost xx.xx.xx.xx:80>
   ServerName ns2.example.com
   #RedirectMatch permanent /(.*) http://example.new/$1
   RewriteCond %REQUEST_URI !^/robots\.txt [NC] 
   RewriteRule ^(.*)$ http://example.new/$1 [R=301,L]
</VirtualHost>   

有人看到我的错误吗? example.new 是我要重定向到的网站

【问题讨论】:

为什么要在名称服务器上安装 Apache?它让我的灵魂受伤。 因为当我使用 phusion 乘客安装我的 ruby​​ on rails 应用程序时,当您将文档根目录更改为远离 cpanel 的默认值时,我没有考虑到它“随机”选择一个域(它实际上是第一个一个文件),这恰好是我的域名服务器,当我的域名服务器开始访问我的网站时,谷歌索引了 3000 多页重复内容。现在我正在修复那个错误 【参考方案1】:

有人看到我的错误吗? example.new 是我要重定向到的网站

对于初学者来说,您似乎需要打开重写引擎:

RewriteEngine On

这行得通,但现在它将所有内容重定向为 http://example.com//whatever-page 和两个 //

这一行:

RewriteRule ^(.*)$ http://example.new/$1 [R=301,L]

需要删除/

RewriteRule ^(.*)$ http://example.new$1 [R=301,L]

这是因为 RewriteRule 匹配的 URI 在 vhost/server 配置中具有前导斜杠,因此您不需要在目标中的主机名后面加上斜杠。

【讨论】:

有效,但现在它将所有内容重定向为 http://example.com//whatever-page 并带有两个 // 谢谢!非常有帮助,非常感谢

以上是关于使用除 robots.txt 之外的虚拟主机进行重定向的主要内容,如果未能解决你的问题,请参考以下文章

Google 域的 YQL“重定向到 robots.txt 受限 URL”错误

xml 更新Robots.txt以重定向到sitemap.xml

防止机器人索引受限访问子域

CodeIgniter 的 Nginx 重写规则

如何设置网站的robots.txt

通过使用 dplyr 添加前缀重命名除 id 列之外的所有列