Negar acesso a subpasta e arquivo com .htaccess

1

Eu preciso negar o acesso aos arquivos de configuração em alguma subpasta. Atualmente, tenho esta regra, mas não funciona:

<Files ~ "((foo|bar))$">
  Order deny,allow
  Deny from all
</Files>

Se eu for para www.mysite.com/foo/foo2/file.xml , posso ver o arquivo. Eu preciso negar todos os acessos a arquivos em foo e bar recursivamente

UPDATE

Eu tentei esta configuração, mas tenho um erro interno

<FilesMatch ".foo\.(*)$">
    Order Allow,Deny
    Deny from all
</FilesMatch>
    
por hellb0y77 06.08.2015 / 15:49

3 respostas

2

Em vez de diretiva de arquivo, tente usar o local:

<Location "path/to/folder-or-file">
    Order Allow,Deny
    Deny from all
</Location>
    
por 13.04.2017 / 13:12
0

Eu faria o regex correspondente dentro da configuração do apache. Então

  • use <DirectoryMatch> em vez de <File> (você está combinando a expressão regular em um diretório)
  • corrija o rigor do seu regex (especificamente o $ )
  • simplifique sua regex (muitos colchetes)

    <DirectoryMatch "/path/to/toplevel/(foo|bar)">
        Order deny,allow
        Deny from all
    </DirectoryMatch>
    

Note que /path/to/toplevel/ é a localização do sistema de arquivos do seu diretório WWW, onde foo e bar residem.

No entanto, se você quiser fazer isso apenas por .htaccess , crie um arquivo .htaccess no diretório every que deseja negar (foo, bar, foo / bar etc) e coloque a linha

Deny from all

por dentro.

    
por 06.08.2015 / 16:46
0

" <Files> [...] será aplicado a qualquer objeto com um nome de base (último componente do nome do arquivo) correspondente ao nome de arquivo especificado". Não é o que você quer.

Directory* não funciona em .htaccess

Você precisa usar mod_rewrite . Por exemplo:

<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteRule ^(foo|bar) - [F]
</IfModule>
    
por 06.08.2015 / 18:05