apache redirectmatch 捕获组未正确注入目标

apache redirectmatch 捕获组未正确注入目标

我正在尝试将对旧 git 服务器(使用旧用户名)的请求重定向到新服务器(使用新用户名)。

我正在尝试设置以下条件:

  1. 如果 url 的形式为 http(s)://git.glmdev.tech/glmdev/any/url/here,则将其重定向至https://git.garrettmills.dev/garrettmills/any/url/此处

  2. 如果 URL 是 http(s)://git.glmdev.tech/glmdev,则重定向到https://git.glmdev.tech/garrettmills

  3. 否则,将任何 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。如能提供任何帮助,我们将不胜感激。提前致谢。

相关内容