Apache Common Document root, host virtual diferente, diferentes arquivos acessíveis

1

Eu fiz meu exame de LFCE e fiz uma pergunta. Pergunta pedida para ter  Apache2 instalado com 2 host virtual. site1.exemplo.com e site2.exemplo.com. Ambos os hosts virtuais compartilham a raiz do documento / var / www / html /.. também pediu para ter 2 arquivos diferentes na raiz do documento. test_page1.html e test_page2.html e solicitar o arquivo test_page1.html é acessível apenas a partir do host virtual site1.example.com e test_page2.html é acessível somente a partir de site2.example.com.

Meu problema era como proteger o test_page1.html não será acessível a partir do host virtual 2 e vice-versa se eles compartilharem a mesma raiz do documento.

Host virtual 1

<VirtualHost *:80>
ServerName site1.example.com
DocumentRoot /var/www/html/
<Directory /var/www/html/> 
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>

Host virtual 2

<VirtualHost *:80>
ServerName site2.example.com
DocumentRoot /var/www/html/
<Directory /var/www/html/> 
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
    
por Spyros Savvanis 11.12.2017 / 09:05

1 resposta

0

Eu responderei minha pergunta para referência futura. Isso pode ser feito com uma combinação do bloco Localização , expressões regulares e variáveis do servidor .

Crie um novo arquivo de configuração

nano /etc/apache2/sites-available/secure.conf

Adicionar:

<Location /test_page1.html>
    <If "!(%{SERVER_NAME} -strmatch 'site1.example.com*')">
    Require all denied
    </If>
</Location>
<Location /test_page2.html>
    <If "!(%{SERVER_NAME} -strmatch 'site2.example.com*')">
    Require all denied
    </If>
</Location>

habilite a configuração e reinicie o apache:

 a2ensite secure
 systemctl restart apache2
    
por 11.12.2017 / 10:11