O link simbólico contorna o htaccess no apache

1

Eu tenho uma pasta protegida no meu servidor.

/var/www/private/
/var/www/private/.htaccess

Ele também tem muitas subpastas com serviços diferentes.

/var/www/private/service1/
/var/www/private/service2/
/var/www/private/service3/

Agora, gostaria de encurtar o URL de alguns serviços. Gostaria de usar links simbólicos.

/var/www/service1 -> private/service1

Agora os testes:

link < - Solicita senha, como eu quero.

link < - Não pede senha !!

Esta é uma limitação geral de links simbólicos ou um problema de configuração incorreta? Tentei no Fedora e no Ubuntu com configurações bastante padronizadas (posso postá-las a pedido).

    
por LatinSuD 13.10.2010 / 11:12

2 respostas

1

você provavelmente habilitou o htaccess apenas para o diretório de destino. você também deve fazer o mesmo para o link simbólico:

<directory /var/www/symlink>
allowoverride all 
</directory>

O apache não processa as diretivas definidas para o diretório de destino depois de encontrar o symlink no caminho. de qualquer forma, eu usaria um alias na configuração do apache em vez de usar o symlinking. para encurtar urls, isto é.

    
por 13.10.2010 / 11:34
1

Resposta curta: use a configuração apache2 em vez do arquivo .htaccess e proteja o diretório original, não o link simbólico (ou talvez exista uma maneira de dizer ao "Diretório" para excluir a referência simbólica)

Resposta longa: tive um problema semelhante com o phpmyadmin. Seguindo o guia Debian eu criei um link simbólico em a raiz do documento:

/var/www/html/phpmyadmin  --> /usr/share/phpmyadmin

Então eu coloco a diretiva

<Directory "/var/www/html/phpmyadmin">
   AuthType Basic
   AuthName "Restricted Content"
   AuthUserFile /etc/apache2/.htpasswd
   Require valid-user
</Directory>

dentro do /etc/apache2/sites-available/000-default.conf

Não funcionou. Eventualmente eu descobri que o caminho a ser protegido não era o symlink, mas o diretório real:

<Directory "/usr/share/phpmyadmin">
     AuthType Basic
     AuthName "Restricted Content"
     AuthUserFile /etc/apache2/.htpasswd
     Require valid-user
</Directory>

Este funcionou.

    
por 06.02.2017 / 18:29