Discussione:
htaccess noindexes e Default.html
(troppo vecchio per rispondere)
Sandro kensan
2017-12-18 11:13:07 UTC
Permalink
Sono incappato in un probabile conflitto tra una direttiva in .htaccess
e un articolo messo in una cartella dal nome Default.html

.htaccess in / ha la direttiva:
# Non permette il listing delle cartelle
Options -Indexes

mentre in www.kensan.it/articoli/ ho il file Default.html

Quel che capita è che accedendo a www.kensan.it/articoli/ mi viene
mostrato il file Default.html e non mi vien proibito l'accesso.

Ho risolto (credo) mettendo in /articoli un altro .htaccess contenente:
DirectoryIndex "Cartella protetta!"

La domanda è: è il metodo migliore? è il più elegante? è il più semplice?
--
Sandro kensan www.kensan.it & www.qiqi.it geek site
Saluto gli agenti della NSA - Hello NSA - www.nsa.gov
Alessandro Pellizzari
2017-12-21 07:06:04 UTC
Permalink
Post by Sandro kensan
Options -Indexes
mentre in www.kensan.it/articoli/ ho il file Default.html
Quel che capita è che accedendo a www.kensan.it/articoli/ mi viene
mostrato il file Default.html e non mi vien proibito l'accesso.
Non ho capito il risultato che vuoi ottenere.

Vuoi impedire di accedere a qualsiasi file di quella cartella o vuoi che
appaia una pagina bianca quando si accede senza il "nome del file"?

Nel primo caso devi usare allow.

Nel secondo caso io di solito metto un file index.html con dentro solo
<html><body></body></html>

A meno di misconfigurazioni di apache, un file chiamato index.html ha la
priorità su tutti gli altro DirectoryIndex configurati.

(Presumo tu non abbia accesso alla config principale di Apache. In quel
caso potresti semplicemente disabilitare Default.html nel DirectoryIndex
generale).

Bye.
Sandro kensan
2017-12-21 18:50:51 UTC
Permalink
Post by Alessandro Pellizzari
Non ho capito il risultato che vuoi ottenere.
forse sono stato frettoloso. Ho una pagina default.html che contiene un
testo che riguarda il default degli stati quindi il nome è una
coincidenza, ho inoltre molti altri testi che voglio siano tutti
visualizzati e che siano accessibili. O meglio voglio che le rispettive
versioni php siano visualizzabili e accessibili. Ho bloccato tramite
.htaccess la visualizzazione dei file .html su quella cartella.


Ma il blocco sia dei file .html che l'opzione
Options -Indexes
non funziona e mi viene mostrato il file Default.html quando accedo alla
cartella relativa.
Post by Alessandro Pellizzari
Vuoi impedire di accedere a qualsiasi file di quella cartella o vuoi che
appaia una pagina bianca quando si accede senza il "nome del file"?
non una pagina bianca ma la scritta "accesso negato!" tipico del Options
-Indexes che vorrei avesse la precedenza su tutto.
Post by Alessandro Pellizzari
Nel primo caso devi usare allow.
Nel secondo caso io di solito metto un file index.html con dentro solo
<html><body></body></html>
A meno di misconfigurazioni di apache, un file chiamato index.html ha la
priorità su tutti gli altro DirectoryIndex configurati.
Ecco la questione principale quella della scala gerarchica: chi sta
prima e chi sta dopo:

/.htaccess in cui c'è una rule che blocca i file .html nella cartella
articoli
/.htaccess in cui c'è Options -Indexes
/articoli/.htaccess in cui c'è DirectoryIndex "Cartella protetta!"
/articoli/Default.html
/articoli/index.html

Mi pare che la scala sia questa:
Se io accedo a /articoli/ mi viene visualizzato

* index.html anche se tutto il resto è settato,
* "accesso negato!" se non c'è index.html
* Default.html se non c'è né index.html e né DirectoryIndex
* "accesso negato!" se non c'è né index.html e né DirectoryIndex e né
Default.html
* ecc, ecc.
Post by Alessandro Pellizzari
(Presumo tu non abbia accesso alla config principale di Apache. In quel
caso potresti semplicemente disabilitare Default.html nel DirectoryIndex
generale).
Si, per mia sfortuna è un server condiviso.
Post by Alessandro Pellizzari
Bye.
Bye e grazie :)
--
Sandro kensan www.kensan.it & www.qiqi.it geek site
Saluto gli agenti della NSA - Hello NSA - www.nsa.gov
Alessandro Pellizzari
2017-12-22 12:39:36 UTC
Permalink
Post by Sandro kensan
Ecco la questione principale quella della scala gerarchica: chi sta
Premettendo che non sono un esperto di Apache, questo è quello che credo
succeda:

- Arriva una richiesta

- Apache legge il suo file di configurazione principale

- Se il file di configurazione dice che ci può essere un .htaccess,
Apache lo cerca nella stessa cartella e, in base al settaggio
AllowOverride, sovrascrive le impostazioni generali con quelle dell'htaccess

- Apache controlla se il file col nome esattamente identico esiste.
Anche se è una cartella.

- Se non esiste e ci sono Alias, controlla gli alias

- Se non esiste ritorna un 404

- Se esiste ed è una cartella, Apache controlla la configurazione
DirectoryIndex, e prova in ordine i nomi di file elencati

- Se ancora non trova niente, e il modulo Index (se non ricordo male il
nome) è attivo, prende la lista dei file e costruisce una pagina html
con la lista linkata.

Ci sono qualche altra decina di passi in mezzo (tipo auth, invocazione
di php, ecc.), ma questo è quello che dovrebbe servire a te.

La cosa più semplice credo sia creare un file con un nome improbabile,
tipo "_______index.html" con dentro "<h1>Accees denied</h1>" e metterlo
come DirectoryIndex.

Se hai Apache 2.4 o superiori, puoi mettere "DirectoryIndex disabled",
ma non ho mai provato, personalmente, come interagisce col resto.

Bye.
Sandro kensan
2017-12-22 12:51:32 UTC
Permalink
Post by Alessandro Pellizzari
Post by Sandro kensan
Ecco la questione principale quella della scala gerarchica: chi sta
Premettendo che non sono un esperto di Apache, questo è quello che credo
- Arriva una richiesta
- Apache legge il suo file di configurazione principale
- Se il file di configurazione dice che ci può essere un .htaccess,
Apache lo cerca nella stessa cartella e, in base al settaggio
AllowOverride, sovrascrive le impostazioni generali con quelle dell'htaccess
- Apache controlla se il file col nome esattamente identico esiste.
Anche se è una cartella.
- Se non esiste e ci sono Alias, controlla gli alias
- Se non esiste ritorna un 404
- Se esiste ed è una cartella, Apache controlla la configurazione
DirectoryIndex, e prova in ordine i nomi di file elencati
- Se ancora non trova niente, e il modulo Index (se non ricordo male il
nome) è attivo, prende la lista dei file e costruisce una pagina html
con la lista linkata.
Ci sono qualche altra decina di passi in mezzo (tipo auth, invocazione
di php, ecc.), ma questo è quello che dovrebbe servire a te.
La cosa più semplice credo sia creare un file con un nome improbabile,
tipo "_______index.html" con dentro "<h1>Accees denied</h1>" e metterlo
come DirectoryIndex.
Se hai Apache 2.4 o superiori, puoi mettere "DirectoryIndex disabled",
ma non ho mai provato, personalmente, come interagisce col resto.
Interessante e anche difficile da ricordare tutti questi passaggi che fa
apache, io sono andato a tentativi per decifrare quel che viene eseguito
prima e dopo per le mie necessità.

Grazie della trattazione.
--
Sandro kensan www.kensan.it & www.qiqi.it geek site
Saluto gli agenti della NSA - Hello NSA - www.nsa.gov
Loading...