Eu tenho o seguinte arquivo .htaccess:
RewriteEngine On
RewriteBase /
# Protect the htaccess file
<Files .htaccess>
Order Allow,Deny
Deny from all
</Files>
# Protect log.txt
<Files ./inscription/log.txt>
Order Allow,Deny
Deny from all
</Files>
# Disable directory browsing
Options All -Indexes
Estou tentando proibir os visitantes de acessar o seguinte arquivo:
domain.com/inscription/log.txt
mas o que tenho acima não funciona: ainda consigo acessar o arquivo do navegador remotamente.
<Files>
diretiva só se aplica a esse diretório" - não, não. Ele se aplica a esse diretório e a todos os subdiretórios abaixo dele. Então<Files "log.txt">
vai pegar/log.txt
e/inscription/log.txt
.Order Allow,Deny
está obsoleto no 2.4?Combinação de padrões fortes - este é o método que uso aqui na Perishable Press. Usando forte correspondência de padrões, esta técnica impede o acesso externo a qualquer arquivo contendo “ .hta ”, “ .HTA ” ou qualquer combinação dos mesmos que não diferencia maiúsculas de minúsculas. Para ilustrar, este código impedirá o acesso por meio de qualquer uma das seguintes solicitações:
..etc., etc. Claramente, este método é altamente eficaz para proteger os arquivos HTAccess do seu site. Além disso, essa técnica também inclui a diretiva fortificante " Satisfaça a Todos ". Observe que este código deve ser colocado no arquivo HTAccess raiz de seu domínio:
fonte
<Files ~"^\..*">
.Não acredito que a resposta aceita atualmente esteja correta. Por exemplo, tenho o seguinte
.htaccess
arquivo na raiz de um servidor virtual (apache 2.4):Isso impede o acesso externo ao
reminder.php
que está em um subdiretório. Eu tenho um.htaccess
arquivo semelhante em meu servidor Apache 2.2 com o mesmo efeito:Não sei ao certo, mas suspeito que seja a tentativa de definir o subdiretório especificamente no
.htaccess
arquivo, a saber ,<Files ./inscription/log.txt>
que está causando a falha. Seria mais simples colocar o.htaccess
arquivo no mesmo diretório,log.txt
ou seja, noinscription
diretório e ele funcionará lá.fonte
Coloque a linha abaixo em seu arquivo .htaccess e substitua o nome do arquivo como desejar
fonte
Bem, você pode usar a
<Directory>
tag, por exemplo:Não use
./
porque se você apenas usá-/
lo olha o diretório raiz do seu site.Para obter um exemplo mais detalhado, visite http://httpd.apache.org/docs/2.2/sections.html
fonte
<Directory>
contêiner não é permitido.htaccess
. Em.htaccess
, o.htaccess
próprio arquivo é o " contêiner do diretório " (arquivo de configuração por diretório).Redirect /inscription/log.txt access_denied.html
Isso redirecionará o usuário paraaccess_denied.html
se ele for parainscription/log.txt
no diretório de inscrição.