在使用Apache代理Gitblit时,发现当Gitblit的路径含有%2F
时,必然会出错。不含%2F
时则不会。
尝试在Gitblit里直接把%2F改成/也会出现一样的问题。所以很可能是Apache在Proxy代理的过程中自动将URL的%2F
解析成/
导致的。
在Apache配置文件,虚拟机代理配置部分,加入AllowEncodedSlashes NoDecode
,阻止对编码的自动解析。问题就解决了。如:
<VirtualHost *>
AllowEncodedSlashes NoDecode
ServerName git.myhost.com:80
ServerAlias
ProxyPass / http://192.168.1.2:8080/
ProxyPassReverse / http://192.168.1.2:8080/
</VirtualHost>
转载请注明出处
《禁用Apache代理时对%2F的解析,解决Gitblit的问题》https://www.ywlib.com/archives/46.html (from 一闻自习室)