2013-07-25 15 views
8

Moja webowy jest przechowywany w /var/www/vhosts/domain.tld/httpdocs/Odmowa dostępu do wszystkich folderów za wyjątkiem nielicznych użyciu htaccess

HTACCES-pliku, który będę Poniższa lista zawiera następujące elementy:

# Refuse direct access to all files 
Order deny,allow 
Deny from all 
Allow from 127.0.0.1 

<Directory /uploads/images/pages> 
    Order Deny,Allow 
    Allow from all 
</Directory> 

. Plik .htaccess jest przechowywany w plikach folderów w katalogu głównym. Tak pełna ścieżka to: /var/www/vhosts/domain.tld/httpdocs/files/

Zawartość dla "plików" Folder:

backups 
    backup1.zip 
    backup2.zip 
    ... 
mails 
    mail1.html 
    mail2.html 
    ... 
templates 
    temlpate.html 
    ... 
uploads 
    files 
     manual.pdf 
     ... 
    images 
     pages 
      picture1.png 
      picture2.jpg 
      ... 
     store 
      picture1.png 
      picture2.jpg 
      ... 
.htaccess <--- previous code block with htaccess code is for that file 

Co ja właściwie próbuje zrobić, jest ochrona każdego folderu z bezpośrednim dostępem, z wyjątkiem następujących:

  • uploads/plików/
  • uploads/images/stron/
  • uploads/images/sklep/

Każdy plik w tych folderach mogą być dostępne bezpośrednio

Na używając htaccess jak opisano powyżej Dostaję 500 strony błędu. Podczas używania tylko pierwszych 4 wierszy z przykładu (bez wyjątków) kod działa dobrze.

Każda pomoc jest doceniana!

Z góry dziękuję!

Odpowiedz

11

Otrzymujesz błąd 500, ponieważ kontener <Directory> nie może być użyty w pliku htaccess (który w zasadzie znajduje się wewnątrz kontenera katalogu dla katalogu, w którym znajduje się). Co trzeba zrobić, to wyjąć pojemnik <Directory> z pliku .htaccess i pozostawić Deny from all bitowe:

plik .htaccess w katalogu głównym dokumentu:

# Refuse direct access to all files 
Order deny,allow 
Deny from all 
Allow from 127.0.0.1 

Następnie utworzyć plik .htaccess w uploads/files/, uploads/images/pages/ i uploads/images/store/ (i wszelkie inne katalogi, które chcesz zezwolić na dostęp do):

Allow from all 
+0

Zakładając, że nie może uzyskać dostępu do httpt.conf jest ta metoda jest dobrym sposobem na zablokowanie dostępu do katalogów na serwerze? Jeśli nie, co jest lepsze od tego? – CoR

+2

@CoR Jeśli nie masz dostępu do konfiguracji serwera, umieszczenie go w pliku htaccess (bez kontenera '') jest standardowym sposobem ograniczenia dostępu –

Powiązane problemy