Salve,
ho un problema che mi assilla da tempo e per il quale non riesco a trovare alcuna soluzione.
Ho un sito ( http://stidue.altervista.org ) che viene gestito con un semplice directory listing di apache "abbellito" con le apposite direttive tramite file di testata e pie di pagina e css esterni.
Per ora tutte le cartelle e i files si comportano come un banale directory listing (a parte quelle nascoste dall'index ignore) mentre io vorrei che i files, e solo loro (NON le directory) venissero serviti da uno script PHP che facesse un controllo via CAPTCHA prima di mandare lo stream del file.
Ciò premesso, mi servirebbe una condizione nell'HTACCESS che possa effettuare trasformazioni del tipo:
Codice:
http://stidue.altervista.org/ - http://stidue.altervista.org/ (Resta Uguale)
http://www.stidue.altervista.org/folder1/ - http://www.stidue.altervista.org/folder1/ (Resta Uguale)
http://stidue.altervista.org/fold1/fold2/ - http://stidue.altervista.org/fold1/fold2/ (Resta Uguale)
http://stidue.altervista.org/folder1/file1.ext - http://stidue.altervista.org/include/fmanager.php?file=/folder1/file1.ext
http://www.stidue.altervista.org/fold1/fold2/file2.ess - http://www.stidue.altervista.org/include/fmanager.php?file=/fold1/fold2/file2.ess
Per adesso il mio htaccess è qualcosa del genere
Codice:
RewriteEngine On
Options Indexes FollowSymLinks
IndexOptions Charset=UTF-8
IndexOptions +FancyIndexing
IndexOptions +VersionSort
IndexOptions +HTMLTable
IndexOptions +FoldersFirst
IndexOptions +IconsAreLinks
IndexOptions +IgnoreCase
IndexOptions +SuppressDescription
IndexOptions +SuppressHTMLPreamble
IndexOptions +XHTML
IndexOptions +IconWidth=16
IndexOptions +IconHeight=16
IndexOptions +NameWidth=55
IndexOrderDefault Ascending Name
HeaderName /include/header.html
ReadmeName /include/footer.html
IndexIgnore /include
IndexIgnore */.htaccess
IndexIgnore /COPYING
IndexIgnore /README.md
IndexIgnore /vhost.conf
IndexIgnore /favicon.gif
IndexIgnore /favicon.ico
IndexIgnore /img
IndexIgnore /contribuisci
IndexIgnore /google898fc143c2921769.html
IndexIgnore /robots.txt
IndexIgnore /sitemap.xml
IndexIgnore /sitemap.xsl
IndexIgnore /y_key_70f072abda42ab66.html
IndexIgnore /e72
IndexIgnore /c7
IndexIgnore /wf
IndexIgnore SSS*
AddIcon /include/icons2/type_application.png .exe .app .EXE .APP
AddIcon /include/icons2/type_binary.png .bin .hqx .uu .BIN .HQX .UU
AddIcon /include/icons2/type_box.png .tar .tgz .tbz .tbz2 bundle .rar .TAR .TGZ .TBZ .TBZ2
AddIcon /include/icons2/type_rar.png .rar .RAR
AddIcon /include/icons2/type_html.png .htm .html .HTM .HTML
AddIcon /include/icons2/type_code.png .htx .htmls .dhtml .phtml .shtml .inc .ssi .c .cc .css .h .rb .js .rb .pl .py .sh .shar .csh .ksh .tcl .as
AddIcon /include/icons2/type_database.png .db .sqlite
AddIcon /include/icons2/type_disc.png .iso .image
AddIcon /include/icons2/type_document.png .ttf
AddIcon /include/icons2/type_excel.png .xlsx .xls .xlm .xlt .xla .xlb .xld .xlk .xll .xlv .xlw
AddIcon /include/icons2/type_flash.png .flv
AddIcon /include/icons2/type_illustrator.png .ai .eps .epsf .epsi
AddIcon /include/icons2/type_pdf.png .pdf .PDF
AddIcon /include/icons2/type_php.png .php .phps .php5 .php3 .php4 .phtm
AddIcon /include/icons2/type_photoshop.png .psd
AddIcon /include/icons2/type_monitor.png .ps
AddIcon /include/icons2/type_powerpoint.png .ppt .pptx .ppz .pot .pwz .ppa .pps .pow
AddIcon /include/icons2/type_swf.png .swf
AddIcon /include/icons2/type_text.png .tex .dvi
AddIcon /include/icons2/type_vcf.png .vcf .vcard
AddIcon /include/icons2/type_word.png .doc .docx
AddIcon /include/icons2/type_zip.png .Z .z .tgz .gz .zip
AddIcon /include/icons2/type_globe.png .wrl .wrl.gz .vrm .vrml .iv
AddIcon /include/icons2/type_android.gif .apk .APK
AddIconByType (TXT,/include/icons2/type_text.png) text/*
AddIconByType (IMG,/include/icons2/type_image.png) image/*
AddIconByType (SND,/include/icons2/type_audio.png) audio/*
AddIconByType (VID,/include/icons2/type_video.png) video/*
AddIconByEncoding (CMP,/include/icons2/type_box.png) x-compress x-gzip
AddIcon /include/icons2/back.png ..
AddIcon /include/icons2/information.png README INSTALL
AddIcon /include/icons2/type_folder.png ^^DIRECTORY^^
AddIcon /include/icons2/blank.png ^^BLANKICON^^
DefaultIcon /include/icons2/type_document.png
order allow,deny
allow from all
ErrorDocument 400 /include/400.html
ErrorDocument 401 /include/400.html
ErrorDocument 403 /include/403.html
ErrorDocument 404 /include/400.html
RewriteRule ^(.+)/(.+).(.+)$ include/fmanager.php [L]
ma non riesco ad ottenere il comportamento desiderato.
In particolare non riesco ad effettuare la distinzione tra directory e file e non riesco a rendere la directory /include/ e i file di utilità (tutti quelli della root che risultano nascosti, per esempio) "immuni" al trattamento htaccess.
Qualcuno può darmi una mano?
Grazie mille.