首页 > 解决方案 > Apache2 根据位置匹配路由到不同的文件夹

问题描述

我想将我的 apache 重新路由到不同的系统文件夹。

目前我有这个设置

<VirtualHost *:443>
    ServerName blaah.com
    SSLCertificateFile /etc/ssl/certs/blaah.crt
    SSLCertificateKeyFile /etc/ssl/private/blaah.key
    SSLCertificateChainFile /etc/ssl/certs/DigiCertCA.crt
    DocumentRoot /var/www/blaah
    Alias /webalizer /var/www/webalizer
    <Directory /var/www/webalizer>
        Allow from 192.168.0.0/16
        Deny from all
        AuthType Basic
        AuthName webalizer
        AuthUserFile /var/www/webalizer/.htpasswd
        Require valid-user
    </Directory>
    ProxyPass /gogs http://127.0.0.1:3000
    <LocationMatch "^/blaah/blaah/">
        Deny from all
    </LocationMatch>
    <LocationMatch "^/maintenance">
        Allow from IP
        Deny from all
    </LocationMatch>
</VirtualHost>

因此,基本上,当您访问 servername blaah.com 时,您会被定向到一项服务。

现在我想对该服务进行维护,这意味着我必须重新路由它们。

但是我想测试那个端点,所以当你写 blaah.com/maintenance(最后的位置匹配应该涵盖那个)时,你会被定向到 /var/www/maintenance。该文件夹包含一个 index.html,它告诉您正在进行维护。我怎样才能做到这一点?

在 nginx 中,我会做多个位置,然后更改文档根目录和 tryfiles。

标签: apache2

解决方案


弄清楚了。

用过的

  Alias /maintenance /var/www/maintenance
  <Directory /var/www/maintenance">
      Allow from IP
  </Directory>

推荐阅读