utiliser le fichier image / media / binary pour l’index du répertoire (ou de jolies URL pour les images / médias)

pour la plupart des serveurs web / http, la valeur par défaut est de retourner un fichier du nom index.{html,php} si un répertoire est spécifié dans un chemin et contient le fichier d’index.

Je me demande s’il est possible de retourner une image ou un autre contenu au lieu du fichier d’index? par exemple pour cette structure de répertoire

 releases releases/album/ releases/album/covers/ releases/album/covers/front/index.jpeg releases/album/covers/front/index.pdf releases/album/covers/front/index.png releases/album/covers/back/index.jpeg releases/album/covers/back/index.pdf releases/album/covers/back/index.png 

l’URL

 http://server.org/releases/album/covers/front 

renverrait l’image index.jpeg dans le dossier front . Ainsi, les fichiers JPEG sont les fichiers par défaut si aucun format n’est spécifié. ensuite, l’URL

 http://server.org/releases/album/covers/front/pdf 

renverrait la version index.pdf située dans ce dossier, et également pour

 http://server.org/releases/album/covers/front/png 

le fichier index.png . idem pour le dossier back . vous avez eu l’idée 😉

aussi, je voudrais que l’ index.* actuel index.* ne soit pas accessible. ainsi, les ressources ne sont disponibles que via les URLs jolies / répertoire.

Ceci est un site statique, donc je préfère résoudre ce problème en utilisant uniquement la configuration htaccess . Cependant, je suis ouvert aux solutions de script côté serveur (par exemple, node.js, PHP).

Merci

En supposant que seule la partie album de l’URL varie, vous pouvez utiliser le .htaccess suivant

 RewriteEngine on # Block direct index requests RewriteCond %{THE_REQUEST} \ /releases/[^/]+/covers/front/((pdf|png)/)?index\.(jpeg|pdf|png)\s [NC] RewriteRule ^ - [F] # Resolve pretty URLs RewriteRule ^(releases/[^/]+/covers/front)/?$ /$1/index.jpeg [NC,L] RewriteRule ^(releases/[^/]+/covers/front)/(pdf|png)/?$ /$1/$2/index.$2 [NC,L] 

Je voudrais juste append une version plus générique / réutilisable de la solution de @Ravi Thapliyal:

 RewriteEngine on # block direct index file image requests in current directory RewriteCond %{THE_REQUEST} \ ?index\.(jpeg|pdf|png)\s [NC] RewriteRule ^ - [F] # Resolve pretty URLs in current directory # by default return JPEG version RewriteRule ^/?$ index.jpeg [NC,L] # accept either jpg or jpeg for JPEG version RewriteRule ^/?(jpg|jpeg)/?$ index.jpeg [NC,L] # for other types, return appropriate RewriteRule ^/?(pdf|png)/?$ index.$1 [NC,L] 

maintenant, ces règles de réécriture peuvent être placées dans n’importe quel répertoire pour que ce répertoire serve les fichiers image index. {jpeg, jpg, png, pdf} comme décrit dans la question d’origine (avec de jolies URL). pour la structure de répertoires particulière définie dans la question, cela signifierait de placer ces règles dans un fichier .htaccess dans les répertoires releases/album/covers/front/ et releases/album/covers/back/ .

encore une fois, grâce à @Ravi Thapliyal qui a fait le gros du travail pour répondre à la question.