当使用beta。*前缀时,将机器人重定向到robots-beta.txt

时间:2012-12-30 16:54:53

标签: apache .htaccess mod-rewrite

我正在尝试禁用来自我的beta。*子域的所有内容的所有索引。我实际上在服务器上没有beta /目录。该应用程序非常智能,可以在用户看到网址中的测试版前缀时将其切换为测试版代码。

无论如何,我正在尝试做的是在使用beta。*前缀时将所有机器人重定向到robots-beta.txt,但是我很难让它工作。我已经在我的htaccess文件中尝试了这个并尝试修改我的虚拟主机,但似乎没有任何结果。

# Disable beta.* indexing
RewriteCond %{HTTP_HOST} ^beta\.sitename\.com$
RewriteRule ^robots.txt$ http://beta.sitename.com/robots-beta.txt [L]

修改 或者,如果有一种方法可以在原始的robots.txt文件中执行此操作,那么我认为这样会更好。有点像?

User-agent: *
Disallow: beta.*

1 个答案:

答案 0 :(得分:1)

我总是这样设置我的robots.txt(我正在使用PHP):

<?
$pos = strpos($_SERVER['HTTP_HOST'], ".gridserver.com"); // this is my temp domain

if ($pos === false) { ?>
    User-agent: *
    Disallow: /admin/
    Disallow: /ajax/

    Sitemap: http://<?= $_SERVER['SERVER_NAME'] ?>/sitemap.xml
<? } else { ?>
    User-agent: *
    Disallow: /
<? } ?>

然后在我的.htaccess中:

<FilesMatch "^robots.txt$">
  SetHandler php-script
</FilesMatch>

虽然说实话,我非常喜欢你的方式!