Su AlterVista come tutti ben sappiamo la mod_autoindex è disabilitata e quindi non è possibile elencare file e directory qualora l'index non fosse presente.
Come ovviare il problema?
Per aggirare questo problema ho creato un piccolo script PHP e l'ho chiamato PHP's Apache Directory Simulator (PADS).
Questo script (compatibile con PHP 4 o superiore) simula quasi perfettamente la mod_autoindex di Apache la sua personalizzazzione è molto semplice e rapida in quanto c'è da configurare solo 3 variabili che servono allo script per funzionare al meglio.
Attualmente per assomigliare alla mod_autoindex manca poco, non vi ho postato direttamente il codice perchè potrebbe subire variazioni in poco tempo e non vorrei tornare qui a modificare 1000 volte il mio post (oltre il fatto che poche persone si accorgerebbero della modifica)...anche questa volta vi lascio i due link fondamentali:
- [PADS] PHP's Apache Directory Simulator - Home Page
- [PADS] PHP's Apache Directory Simulator - Demo (con modifica scolastica)
N.B. Ho utilizzato PADS per una cartella che utilizzo per condividere file scolastici quindi c'ho applicato una piccola MOD che mi ha aggiunto i banner ed uno stile ai collegamenti ipertestuali nient'altro.
Come sfruttare PADS su AlterVistaSecondo me PADS può essere sfruttato su AlterVista anche per migliorare quella pagina "Index mancante", per fare ciò ci occorre una pagina di errore personalizzata 404 con estensione .php in cui inseriremo, prima di qualsiasi codice presente, le seguenti righe:
In pratica questo codice analizza il file/cartella richiesto ma non trovato, se è una cartella controlla la presenza di un file index (in caso non ci sia mostra tutti i file e le directory della cartella richiesta) mentre se è un file mostra l'errore 404 scelto dall'utente.Codice PHP:
<?php
$request = $_SERVER['REQUEST_URI'];
if(is_dir($request)){
$user = "miki92"; // Sostituisci con il tuo username su AlterVista
$dirname = dirname($request);
$homepads = "../pads/index.php"; // Percorso di dove si trova lo script PADS
$path = "/membri/".$user."/".$dirname."/index.php";
if(!file_exists($path)){
exit(include($homepads));
}} ?>
// Da qui in poi segue il vostro codice 404
Per segnalazioni varie potete contattarmi tramite mio sito ed entro 24h riceverete una risposta.
Spero che questo script vi sia utile e che possa essere d'aiuto a molta gente,
Michelangelo