2012-08-06 84 views
0

我正在研究Web应用程序,它允许用户依次创建自己的Web应用程序。对于由我的应用程序创建的每个新Webapp,请指定一个新子域。 例如subdomain1.xyzdomain.com,subdomain2.xyzdomain.com等选择性索引子域

所有这些Webapps是一存储在数据库和Python脚本(比如 default_script.py)保持在/var/www/供应。 到目前为止,我已经使用robots.txt阻止了目录(/var/www/)的搜索引擎索引。这基本上阻止了我所有脚本的索引,包括default_script.py以及使用default_script.py脚本为多个webapps提供的内容。

但现在我希望这些子域中的一些应该被索引。

之后搜索,而我能够在的robots.txt

明确specifing他们想出一个办法来阻止我的脚本的索引,但我仍然怀疑如下:

  1. 将阻止我的default_script.py免受索引也会阻止从default_script.py提供的所有内容的索引编制。如果是,那么如果我让它索引,也会在搜索结果中显示default_script.py

  2. 我该如何允许选择一些子域的索引。

    例如:指数subdomain1.xyzdomain.com但不是subdomain2.xyzdomain.com

回答

1

号搜索引擎不应该关心什么脚本生成的页面。只要webapps生成的页面被索引,你应该没问题。

第二个问题:

您应为每个子域单独的robots.txt。这是从特定子域获取robots.txt时,仅返回与该sudomain相关的robots.txt文件。所以,如果你想要子域索引,有该机器人文件允许所有。如果你不想索引它,请让机器人文件全部拒绝。

+0

感谢@Rafael,这个回答我的第一个问题。你对第二个有什么想法吗? – lalit 2012-08-06 13:46:11

+0

所以,你的意思是一个子域robots.txt将从数据库提供,而不是从/ var/www /。因为我在我的案例中看到robots.txt是从/ var/www /而非数据库获取的,我正在使用它来阻止我的脚本文件。 – lalit 2012-08-07 04:56:30

+1

有很多方法可以做到这一点。您可以为每个包含特定版本的robots.txt的子域创建单独的文件目录。或者你可以在服务器端重写robots.txt的feteches到subdomain.robots.txt。或者您可以按照您的建议从数据库提供服务。 – 2012-08-07 18:02:43

0

所以总结讨论,

这是我.htaccess文件的外观,其保持在/var/www/目录:

Options +FollowSymlinks 
RewriteEngine On 
RewriteBase/

# Rule Below allows using different robots.txt for subdomain1. 
RewriteCond  %{HTTP_HOST}   ^subdomain1.xyzdomain.com$ [NC] 
RewriteRule  ^(.*)robots.txt  subdomain1-robots.txt [L] 

# This rule is applicable on rest of subdomains and xyzdomain.com. 
RewriteRule  ^robots.txt$   robots.txt [L] 

# This rule allow serving content from default_script.py for files other then robots.txt 
RewriteRule  .      default_script.py