如何配置apache以提供服务http://svn.example.com/robots.txt?
我通过以下方式访问SVN存储库:如何配置apache以提供服务http://svn.example.com/robots.txt?,apache,svn,robots.txt,mod-dav-svn,Apache,Svn,Robots.txt,Mod Dav Svn,我通过以下方式访问SVN存储库: http://svn.example.com/repo1 http://svn.example.com/repo2 使用以下Apache配置 LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so <VirtualHost xxx.xxx.xxx.xxx> ServerName
- http://svn.example.com/repo1
- http://svn.example.com/repo2
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
<VirtualHost xxx.xxx.xxx.xxx>
ServerName svn.example.com
<Location />
DAV svn
SVNParentPath /path/to/svn/repositories
AuthzSVNAccessFile /path/to/svn/conf/auth_policy
Satisfy Any
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /path/to/svn/conf/passwdfile
Require valid-user
</Location>
</VirtualHost>
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
ServerName svn.example.com
DAV svn
SVNParentPath/path/to/svn/repositories
authzsvnacessfile/path/to/svn/conf/auth_策略
满足任何
AuthType Basic
AuthName“Subversion存储库”
AuthUserFile/path/to/svn/conf/passwdfile
需要有效用户
我想阻止网络爬虫为公共存储库编制索引,但我不知道如何正确设置配置以从http://svn.example.com/robots.txt
我找到了2006年的一个线程,但它没有帮助我解决这个问题(Ryan关于重定向的建议不起作用)
编辑:我更喜欢将存储库保持在顶层,而不是将其移动到http://svn.example.com/something/reponame.不要将Subversion存储库的虚拟目录放在服务器的根目录中: 错误的
DAV svn
SVNParentPath/path/to/svn/repositories
正当
DAV svn
SVNParentPath/path/to/svn/repositories
而不是将存储库根目录设置为http://svn.example.com
,它将是http://svn.exmaple.com/svn
。这将释放http://svn.example.com
成为真正的文档根目录,这意味着您可以添加一些有关站点的文档,并将robots.txt
文件放入http://svn.example.com/robots.txt
现在,行为良好的机器人将看到
robot.txt
文件,而不会为Subversion存储库编制索引。由机器人读取(或不读取)机器人文件。。。不要将其用于安全性非公共存储库受密码保护,因此与安全无关。公共存储库是。。。好的,是公开的,但我不希望结果出现在搜索引擎中。我知道将存储库向下移动一级可以解决robots.txt
的问题,但将存储库移动到另一个URL正是我希望避免的事情。我已经将“svn”作为子域,引入另一个“svn”似乎是多余的,需要更多的输入+所有用户都需要修复他们的签出。(老实说,我可能更愿意花时间将来自不同机器人的IP列入黑名单,而不是将存储库移动到新位置。)您可能能够在同一虚拟根目录下执行文档根目录和SVN repo。在为SVN存储库定义
之前,请尝试在http.conf文件中定义DocumentRoot和ServerRoot指令。查看是否可以创建一个将显示在URL根目录下的index.html
。我知道这在旧版本的ApacheHTTPD中是可能的。值得一试。只要小心,如果有人定义了一个与Subversion repo相同的HTML目录,则可能会导致冲突。@DavidW::它需要被称为robots.txt
(而不是robot.txt
)。
<Location />
DAV svn
SVNParentPath /path/to/svn/repositories
<Location /svn>
DAV svn
SVNParentPath /path/to/svn/repositories