Como remover a proteção de senha .htaccess de um subdiretório
-
07-07-2019 - |
Pergunta
Eu tenho a senha protegida meu site inteiro usando .htaccess
Mas eu gostaria de expor um dos sub -diretórios para que ele possa ser visto sem uma senha.
Como posso desativar a proteção de senha htaccess para um subdirectory? Especificamente o que é o .htaccess
sintaxe.
Aqui está o meu .htaccess
arquivo que é colocado na raiz do meu FTP.
AuthName "Site Administratrion" AuthUserFile /dir/.htpasswd AuthGroupFile /dev/null AuthName secure AuthType Basic require user username1 order allow,deny allow from all
Solução
Você precisa criar um novo .htaccess
arquivo no diretório necessário e inclua o Satisfy any
Diretiva assim, para até o Apache 2.3:
# allows any user to see this directory
Satisfy Any
A sintaxe mudou no Apache 2.4, isso tem o mesmo efeito:
Require all granted
Outras dicas
Além da resposta de Ragez, usei isso nas Diretivas do Servidor:
<Directory /var/www/protected/>
AuthType Basic
AuthName "Production"
AuthUserFile /path/to/.htpasswd
Require valid-user
</Directory>
<Directory /var/www/protected/unprotected>
Satisfy Any
</Directory>
Incrível. Obrigado Ragez!
Simplesmente crie um novo .htaccess
No subdiretório desejado com esta diretiva:
Allow from all
Você pode restringir o seu IP apenas com:
Allow from x.x.x.x
Ver : http://httpd.apache.org/docs/current/mod/mod_access_compat.html
Você precisa adicionar outro arquivo .htaccess ao subdiretório que substitui a autenticação. .htaccess em cascata para cima, ou seja, ele parecerá na pasta atual e depois subirá um nível e assim por diante.
Aqui está uma maneira de permitir o subdiretório "Foo" através da autenticação básica do arquivo principal .htaccess em um site:
AuthType Basic
AuthName "Password Required"
AuthUserFile /dir/.htpasswd
Require expr %{REQUEST_URI} =~ m#^/foo/#
Require valid-user
Nota: Isso funciona no Apache 2.4. Não confirmei para versões anteriores.
Se você deseja impedir que qualquer direto específico da autenticação htaccess, poderá usar o código seguinte no seu arquivo htaccess no topo.
AuthType Basic
AuthName "Enter Pass"
AuthUserFile /home/public_html/.htpasswd /*PATH TO YOUR .htpasswd FILE*/
Require valid-user
SetEnvIf Request_URI "(/DIRECTORY_NAME/)$" allow
Order allow,deny
Allow from env=allow
Além disso, se você quiser evitar vários diretórios, adicione
SetEnvIf Request_URI "(/DIRECTORY_NAME/)$" allow
Quantas vezes, você deseja remover a prevenção de htaccess.