[英]svn per apache with mod_rewrite
我的Subversion存储库具有以下virtuslhost,并且我想创建一个始终指向最新稳定标签的链接。 我尝试使用mod_rewrite。 它被apache接受,没有任何错误,但无法正常工作。 我也尝试重写。*似乎不起作用(是的,我重新启动了Apache)
<VirtualHost svn.warsow-race.net>
ServerAdmin zolex@warsow-race.net
ServerName svn.warsow-race.net
ErrorLog /srv/svn/error.log
CustomLog /srv/svn/access.log combined
RewriteEngine On
RewriteRule ^/racesow0.5/latest-stable(.*) /racesow0.5/tags/0.5.4-stable$1
<Location />
DAV svn
SVNParentPath /srv/svn
</Location>
<Location /racesow0.5>
AuthType Basic
AuthName "Racesow 0.5"
AuthUserFile /srv/svn/racesow.passwd
<LimitExcept GET OPTIONS PROPFIND REPORT>
Require valid-user
</LimitExcept>
</Location>
</VirtualHost>
重写日志说
(2) init rewrite engine with requested uri /racesow0.5/latest-stable/sdk
(3) applying pattern '^/racesow0.5/latest-stable(.*)' to uri '/racesow0.5/latest-stable/sdk'
(2) rewrite '/racesow0.5/latest-stable/sdk' -> '/racesow0.5/tags/0.5.4-stable/sdk'
(2) local path result: /racesow0.5/tags/0.5.4-stable/sdk
(2) prefixed with document_root to /htdocs/racesow0.5/tags/0.5.4-stable/sdk
(1) go-ahead with /htdocs/racesow0.5/tags/0.5.4-stable/sdk [OK]
但是打电话时我找不到404
mod_rewrite
文档 (请参阅“按目录重写”)指示您应该避免将指令放在<Location>
节中,而应将其声明为“不受支持”。 我必须检查源代码以查看实际影响,但是最好避免这种情况。
我建议尝试将规则移到<VirtualHost>
,然后再PT
(直通)重写,以防其他模块需要正确访问重写路径:
<VirtualHost svn.warsow-race.net>
...
ReweiteEngine On
RewriteRule ^/racesow0.5/latest-stable(.*) /racesow0.5/tags/0.5.4-stable$1 [PT]
...
</VirtualHost>
这将不起作用,因为Subversion会在该位置的顶部进行请求,然后对访问日志进行一些“魔术”式的查看以查看实际请求的内容:
/racesow0.5/!svn/vcc/[...]
/racesow0.5/!svn/bc/888/[...]
我不确切知道它是如何工作的,但是简单地“重写”请求是行不通的。
我建议创建一个文件夹“ /racesow0.5/latest-stable”,并将svn:external放入此文件夹,以指向您的最新版本。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.