Heim  >  Artikel  >  php教程  >  动态生成robots.txt的PHP程序

动态生成robots.txt的PHP程序

WBOY
WBOYOriginal
2016-06-06 20:11:002378Durchsuche

以前尝试过《Drupal系列网站用robotstxt模块生成独立robots.txt》,可以实现多站点的每个站点都有不同的robots.txt,但缺点是需要逐个编辑,当子站数量多、修改次数多的时候,依然显得麻烦。 后来也尝试过程序动态生成robots.txt,但一直没有成功,昨天还尝

  以前尝试过《Drupal系列网站用robotstxt模块生成独立robots.txt》,可以实现多站点的每个站点都有不同的robots.txt,但缺点是需要逐个编辑,当子站数量多、修改次数多的时候,依然显得麻烦。

  后来也尝试过程序动态生成robots.txt,但一直没有成功,昨天还尝试了在自定义module中编写,但显示的内容包含在html.tpl.php, page.tpl.php等模板之中,也不行。

  再多查了一些网上的资料并反复测试,终于是可以实现了,步骤如下:

  1. 删除原来的robots.txt;
  2. 编写一个robots.php,用PHP程序来动态输出内容;
  3. 修改.htaccess,让用户访问robots.txt的时候重定向到robots.php的输出内容。

  一个robots.php的例子:

<?php header("Content-Type: text/plain");
$server_name=$_SERVER['SERVER_NAME'];
$output="
# jamesqi 2013-8-29 16:27
# Add Start #
Sitemap: http://$server_name/sitemap.xml
Sitemap: http://$server_name/rss.xml
User-agent:Mediapartners-Google
Disallow:
User-agent: *
Allow: /sites/default/files/
Disallow: /boost_stats.php
# Add End #
Crawl-delay: 10
# Directories
Disallow: /includes/
Disallow: /misc/
Disallow: /modules/
Disallow: /profiles/
Disallow: /scripts/
Disallow: /themes/
# Files
Disallow: /CHANGELOG.txt
Disallow: /cron.php
Disallow: /INSTALL.mysql.txt
Disallow: /INSTALL.pgsql.txt
Disallow: /INSTALL.sqlite.txt
Disallow: /install.php
Disallow: /INSTALL.txt
Disallow: /LICENSE.txt
Disallow: /MAINTAINERS.txt
Disallow: /update.php
Disallow: /UPGRADE.txt
Disallow: /xmlrpc.php
# Paths (clean URLs)
Disallow: /admin/
Disallow: /comment/reply/
Disallow: /filter/tips/
Disallow: /node/add/
Disallow: /search/
Disallow: /user/register/
Disallow: /user/password/
Disallow: /user/login/
Disallow: /user/logout/
# Paths (no clean URLs)
Disallow: /?q=admin/
Disallow: /?q=comment/reply/
Disallow: /?q=filter/tips/
Disallow: /?q=node/add/
Disallow: /?q=search/
Disallow: /?q=user/password/
Disallow: /?q=user/register/
Disallow: /?q=user/login/
Disallow: /?q=user/logout/
";
print $output;
?>

  在.htaccess中定义的ReWrite规则:

RewriteCond     %{REQUEST_URI}          ^\/robots\.txt$
RewriteRule     ^(.*)$                  /robots.php [L]

  先在我的博客中测试成功,电脑版、手机版分别是不同的robots.txt内容:

  • http://jamesqi.com/robots.txt
  • http://m.jamesqi.com/robots.txt

  其中的Sitemap提交给搜索引擎的是各自的sitemap地址。

  以后可以把这个办法实现到各个系列的网站中去。

?

自由标签:

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn