hgweb:显示存储库,但无法访问

时间:2011-02-01 14:40:40

标签: mercurial

我正在尝试发布hg存储库。我将hg 1.7.3hgweb用于多个存储库。在索引页面上显示存储库名称,但是当我单击它们时,我会获得有关已断开链接的信息。 Apache错误日志说:

[Tue Feb 01 15:41:31 2011] [error] [client 10.13.3.64] script not found or unable to stat: /home/hg/webdir/index.cgienigma-reports, referer: http://hg.internal/

我试图访问路径http://hg.internal/enigma-reports/。任何想法,我可能做错了什么?

我在网站中的配置 - 可用如下:

<VirtualHost *>
        ServerName hg.internal
        ScriptAlias / "/home/hg/webdir/index.cgi/"
</VirtualHost>

在index.cgi的路径中没有尾部斜杠之前。为什么需要尾随斜线?现在它看起来像一个目录,而不是一个文件,看起来非常违反直觉。

1 个答案:

答案 0 :(得分:5)

您的ScriptAlias行可能错误 - 错过了一个尾随斜杠。

这是必需的,因为ScriptAlias将第一部分替换为第二部分。

因此,当您的网址为:

http://hg.internal/enigma-reports/

和apache lops的协议和主机变为:

/enigma-reports/

然后ScriptAlias匹配第一个/并进行替换,在更新之前添加斜杠产生

/home/hg/webdir/index.cgienigma-reports/

这不是有效的脚本。

然而,当你的新斜线到位时,替换是:

/home/hg/webdir/index.cgi/enigma-reports/

engigma-reports/转换为PATH_INFO CGI变量,这是脚本所看到的。