Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何配置apache以提供服务http://svn.example.com/robots.txt?_Apache_Svn_Robots.txt_Mod Dav Svn - Fatal编程技术网

如何配置apache以提供服务http://svn.example.com/robots.txt?

如何配置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

我通过以下方式访问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 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