Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Come utilizzare le direttive <Directory> e <DirectoryMatch>?

    Sto avendo alcuni problemi durante l'utilizzo di queste due direttive.

    Ho letto la documentazione di Apache:
    http://httpd.apache.org/docs/2.0/sections.html
    http://httpd.apache.org/docs/2.0/mod...html#directory
    http://httpd.apache.org/docs/2.0/mod...directorymatch

    In più ho utilizzato (con successo) le direttive <Files> e <FilesMatch>.

    Pensavo che per le directory fosse la stessa cosa ma, almeno per adesso, non lo è!
    _________

    Io vorrei impedire l'accesso diretto a dei tipi di file all'interno di una certa directory.

    In particolare, vorrei impedire l'accesso diretto a tutti i file che non sono jpg,gif,png,css,js della directory "wp-content" di wordpress.

    IMPORTANTE Il file .htaccess si trova nella directory principale di wordpress, cioé dove si trova il file index.php, le 3 directory principali (wp-admin, wp-includes, wp-content).

    Questo impedisce l'accesso diretto a tutti i file di tipo diverso da quelli elencati (funziona):

    codice:
    <FilesMatch  "\.(jpg|gif|png|js|css)$">
        Order Allow,Deny
        Deny from all
        Allow from all
    </FilesMatch>
    Per restringere la regola alla directory wp-content, da quello che dice la documentazione, si dovrebbe fare così:

    codice:
    <Directory /wp-content>
    <FilesMatch  "\.(jpg|gif|png|js|css)$">
        Order Allow,Deny
        Deny from all
        Allow from all
    </FilesMatch>
    </Directory>
    ERRORE 500 Internal Server Error.

    Ho provato anche la direttiva directory in modo più semplice, cioé con 1 sola regola all'interno ma l'errore è sempre quello.

    A me sembra che sia la direttiva stessa che dà dei problemi.
    Oppure che sbagli a scrivere la patch...

    Mi chiedevo... è possibile che il provider abbia disattivato l'utilizzo di questa direttiva?
    Non credo, anche perché è un provider che da quel punto di vista offre molta libertà in termini di librerie (apache e php) utilizzabili.

    SOLUZIONE(?) Una soluzione alternativa c'è e consiste nell'inserire il file .htaccess direttamente in wp-content con il seguente codice:
    codice:
    <FilesMatch  "\.(jpg|gif|png|js|css)$">
        Order Allow,Deny
        Deny from all
        Allow from all
    </FilesMatch>
    Però, secondo me, sarebbe meglio non cospargere le directory di .htaccess a meno che non sia necessario.

    Dove sbaglio?

  2. #2
    Utente di HTML.it L'avatar di Enoa
    Registrato dal
    Jul 2005
    Messaggi
    573

    Re: Come utilizzare le direttive <Directory> e <DirectoryMatch>?

    Originariamente inviato da jAmes.87
    Per restringere la regola alla directory wp-content, da quello che dice la documentazione, si dovrebbe fare così:

    codice:
    <Directory /wp-content>
    <FilesMatch  "\.(jpg|gif|png|js|css)$">
        Order Allow,Deny
        Deny from all
        Allow from all
    </FilesMatch>
    </Directory>
    ERRORE 500 Internal Server Error.


    http://httpd.apache.org/docs/2.2/mod...html#directory
    Context: server config, virtual host
    ............
    ........Directory-path is either the full path to a directory, or a wild-card string using Unix shell-style matching. In a wild-card string........
    La direttiva non è utilizzabile nell'.htaccess e comunque devi specificare il percorso assoluto alla directory
    Se non hai accesso al conf del server o del virtualhost la soluzione che proponi mi sa che è l'unica applicabile.

  3. #3

    Re: Re: Come utilizzare le direttive <Directory> e <DirectoryMatch>?

    La direttiva non è utilizzabile nell'.htaccess e comunque devi specificare il percorso assoluto alla directory
    Se non hai accesso al conf del server o del virtualhost la soluzione che proponi mi sa che è l'unica applicabile.
    Ah...
    Avevo letto quella riga e proprio per quella mi erano sorti dei dubbi riguardo il percorso del file.
    Peccato!

    Quindi se ho capito bene i blocchi <Directory> si possono applicare sono nei file di configurazione?
    Oppure nei file di configurazione c'è qualcosa che blocca l'utilizzo di <Directory> negli .htaccess?

    Comunque, per me, la cosa più strana è che appare un errore 500, lo stesso che appare quando si fa un errore di sintassi.
    In questo caso non dovrebbe uscire qualcosa del tipo "403 Forbidden" o comunque qualcosa che ti dica che quello che stai facendo e vietato?
    E' anche per quell'errore che mi vengono i dubbi...
    ___

    Il mio provider mi fa creare virtualhosts liberamente.
    Quando entro nelle impostazioni mi fornisce anche il "link to path" che sarebbe il percorso della directory alla quale si riferisce il virtualhost.

    Nel mio caso, il virtualhosts relativo a "jblog.it" mi da un link-to-path "/jblog.it/www".

    Questa informazione potrebbe servire a qualcosa?

  4. #4
    Utente di HTML.it L'avatar di Enoa
    Registrato dal
    Jul 2005
    Messaggi
    573

    Re: Re: Re: Come utilizzare le direttive <Directory> e <DirectoryMatch>?

    Originariamente inviato da jAmes.87
    Quindi se ho capito bene i blocchi <Directory> si possono applicare sono nei file di configurazione?
    Oppure nei file di configurazione c'è qualcosa che blocca l'utilizzo di <Directory> negli .htaccess?
    No , alcune direttive non possono essere utilizzate negli .htaccess, nella documentazione viene specificato sempre, ad es. http://httpd.apache.org/docs/2.2/mod/core.html#authtype
    Originariamente inviato da jAmes.87
    Comunque, per me, la cosa più strana è che appare un errore 500, lo stesso che appare quando si fa un errore di sintassi.
    In questo caso non dovrebbe uscire qualcosa del tipo "403 Forbidden" o comunque qualcosa che ti dica che quello che stai facendo e vietato?
    E' anche per quell'errore che mi vengono i dubbi...
    Da il 500 perchè c'è un errore nella configurazione, un errore di sintassi visto che non puoi utilizzare la direttiva Directory nell'.htaccess..
    dai un'occhiata qui http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
    e qui http://en.wikipedia.org/wiki/List_of_HTTP_status_codes

    Originariamente inviato da jAmes.87
    Il mio provider mi fa creare virtualhosts liberamente.
    Quando entro nelle impostazioni mi fornisce anche il "link to path" che sarebbe il percorso della directory alla quale si riferisce il virtualhost.

    Nel mio caso, il virtualhosts relativo a "jblog.it" mi da un link-to-path "/jblog.it/www".

    Questa informazione potrebbe servire a qualcosa?
    se hai accesso alla configurazione del virtualhost, specifica nel blocco <VirtualHost>....</VirtualHost> le varie configurazioni, comprese quelle per il rewrite, e rimetti a None l'AllowOverride.
    Dopo ogni modifica devi riavviare apache, naturalmente.

  5. #5
    Grazie mille per i chiarimenti!

    Non ci avevo mai fatto caso a "context".
    Pensavo che tutte le direttive si potessero utilizzare negli .htaccess.

    Allora mi sembra che l'unica soluzione sia inserire un .htaccess nelle directory interessate.

    Grazie ancora.
    Alla prossima!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.