我正在尝试将对旧 git 服务器(使用旧用户名)的请求重定向到新服务器(使用新用户名)。
我正在尝试设置以下条件:
如果 url 的形式为 http(s)://git.glmdev.tech/glmdev/any/url/here,则将其重定向至https://git.garrettmills.dev/garrettmills/any/url/此处。
如果 URL 是 http(s)://git.glmdev.tech/glmdev,则重定向到https://git.glmdev.tech/garrettmills
否则,将任何 http(s)://git.glmdev.tech/any/other/url 重定向到https://git.garrettmills.dev/any/other/url
我正在尝试使用 Apache2 的 RedirectMatch 通过捕获组来执行此操作。我有以下虚拟主机配置:
<VirtualHost *:80>
ServerName git.glmdev.tech
RedirectMatch 301 /glmdev/(.*) https://git.garrettmills.dev/garrettmills/$1
Redirect /glmdev/ https://git.garrettmills.dev/garrettmills/
Redirect / https://git.garrettmills.dev/
</VirtualHost>
<VirtualHost *:443>
ServerName git.glmdev.tech
SSLEngine on
SSLCertificateFile /etc/glmdev/ssl/_star/cert.crt
SSLCertificateKeyFile /etc/glmdev/ssl/_star/cert.key
SSLCertificateChainFile /etc/glmdev/ssl/_star/ca.crt
RedirectMatch 301 /glmdev/(.*) https://git.garrettmills.dev/garrettmills/$1
Redirect /glmdev/ https://git.garrettmills.dev/garrettmills/
Redirect / https://git.garrettmills.dev/
</VirtualHost>
条件 2 和 3 按预期工作,但是导航到某些 http(s)://git.glmdev.tech/glmdev/repositoryname 会重定向到https://git.garrettmills.dev/garrettmills
不确定为什么找不到捕获组或无法将其附加到 URL。如能提供任何帮助,我们将不胜感激。提前致谢。