Estou tentando criar um host virtual Apache fechado para todos os endereços IP, com exceção de um endereço IP e dois URLs que devem ser acessíveis publicamente.
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName example.com
ServerAdmin [email protected]
DocumentRoot "/var/www/example.com/app/webroot"
<Directory "/var/www/example.com/app/webroot">
Options FollowSymLinks Includes ExecCGI
AllowOverride All
ErrorDocument 403 "https://example.com/403.php"
DirectoryIndex index.php
</Directory>
<Location "/foo/bar/">
Require all granted
</Location>
<Location "/.well-known/">
Require all granted
</Location>
<Location "/">
Require ip 1.2.3.4
</Location>
SSLProxyEngine on
ProxyPreserveHost On
ProxyRequests Off
ProxyPass /api/ https://host.docker.internal:8443/api/ connectiontimeout=5 timeout=300
ProxyPassReverse /api/ https://host.docker.internal:8443/api/
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>
Tentei alterar a ordem das Location
tags, mas todas as solicitações são redirecionadas para ErrorDocument
o valor da diretiva.
O URL /foo/bar/
é reescrito por .htaccess
localizado em DocumentRoot
(para fins de teste, tentei remover .htaccess
sem efeito).
Versão Apache:
- Versão do servidor: Apache/2.4.59 (Debian)
- Servidor construído: 2024-04-05T12:02:26
O Apache é executado em um contêiner Docker, mas provavelmente não tem significado para o problema.
P: O que há de errado com a configuração?