重定向指令是否覆盖配置的别名

Does the Redirect directive override configured Aliases

我正在将 apache 2.4 (docker) 设置为反向代理,以将不同的子域分配给不同的 docker 服务。我使用 Redirect 指令将 http 请求重定向到 https。但是,一个特定的 URL 路径(域之后的部分)不应重新定义为 https,而应与特定目录中的文件一起提供。我正在尝试使用 Alias 指令来完成此操作,但该指令不起作用。

我假设 Redirect 覆盖 Alias。真的吗? 如果是这种情况,我该如何实现我的目标?

<VirtualHost *:80>

    ServerName service.example.com

    Alias /exception/ /var/www/exception
    Redirect permanent / https://service.example.com/

</VirtualHost>

我预计这会起作用,但它不起作用。

来自mod_alias docs

First, all Redirects are processed before Aliases are processed, and therefore a request that matches a Redirect or RedirectMatch will never have Aliases applied. Second, the Aliases and Redirects are processed in the order they appear in the configuration files, with the first match taking precedence.

要确保 /exception/ 不匹配,请使用允许正则表达式模式的 RedirectMatch

RedirectMatch permanent "^/(?!exception/)(.*)" "https://service.example.com/"