Subversion的Apache模块是否可以使用html内容types提供html文件而不使用svn:mime-type属性?

我知道,如果您将.html文件中的svn:mime-type Subversion属性设置为text/html那么当通过Apache httpd中的Subversion模块在浏览器中查看文件时,它将与Content-Type: text/html标题,使浏览器呈现为HTML而不是纯文本。

但是,我正在寻找一种方法来执行此操作, 而不使用svn:mime-type属性。

我知道你可以configuration你的svn客户端自动添加属性 – 这不是我想要的,因为我不想确保所有的用户都有这些设置。 我也知道如果没有设置属性,我可以创build一个拒绝提交的预提交钩子,以强制用户设置属性 – 我可能会回到那个,但我正在寻找一些东西侵入。

我也知道,我可以使用post-commit挂钩在服务器端自动添加属性。 我宁愿不这样做(因为用户必须在提交后立即更新,而且这不是微不足道的) – 我正在寻找一个更好的select。 也许在Apache服务器中有重写规则的东西?

简短的回答 – 是的 – 设置ModMimeUsePathInfo为使Apache负责MIMEtypes。

较长的答案 – 是的,但你需要在你的Apache服务器中使用一个相对较新版本的Subversion。

通常,内容由正在询问Subversion存储库的mod_dav_svn模块提供,因此,mimetypes将由Subversion模块指定。

从历史上看,只能使用svn:mime-type属性进行configuration。 在Subversion用户的邮件列表上看到这个线索 ,这个例子是有人试图做类似的事情。

现在,使用ModMimeUsePathInfo指令将告诉Apache找出使用mod_mime指定的MIMEtypes – 更多信息参见附录C,WebDAV和Autoversioning 。

具体如下:

 <Location /repos> DAV svn SVNPath /var/svn/repository SVNAutoversioning on ModMimeUsePathInfo on </Location> 

如果没有设置svn:mime-type属性,Apache的mod_mime将确定内容types。 在Apacheconfiguration中启用它:

 LoadModule mime_module modules/mod_mime.so 

扩展名为.html的文件的MIMEtypes是默认configuration中的text/html 。 经过Apache 2.4.10和Subversion 1.8.11的testing。