> php教程 > php手册 > 본문

动态生成robots.txt的PHP程序

WBOY
풀어 주다: 2016-06-06 20:11:00
원래의
2375명이 탐색했습니다.

以前尝试过《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地址。

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

?

自由标签:

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿