J'ai des PNG dans lesquels, par exemple, ils sont nommés "5021" plutôt que "5021.png" et pour certaines images, cela convient et s'affiche comme une image normale, mais d'autres se téléchargent automatiquement; Une personne qui a ensuite cessé de répondre m'a dit que je pouvais ajouter une règle dans .htaccess
pour que les fichiers soient tous visualisés sous forme d'images et qu'aucun téléchargement ne soit effectué.
Les images sont affichées au format https://i.domain.com/<number>
ex https://i.domain.com/5021
Comment puis-je faire cela ou y a-t-il un autre/meilleur moyen de faire cela?
En fait, il y a plusieurs façons, faites votre choix ...
Vous pouvez utiliser la méthode qui consiste à ne rien faire ...
De nos jours, la plupart des navigateurs peuvent établir des types de contenu sans extension de fichier. Ils téléchargent les premiers octets, découvrent le type puis le traitent en un clin d'œil. Cependant, ce n'est pas une méthode parfaite.
Utilisation de JavaScript pour supprimer les extensions de fichier localement
La méthode ci-dessous est pratique si vous souhaitez supprimer img, ou une extension réellement sur la page, afin de pouvoir intégrer des images à l'aide de <img src="your-image-without-extension">
. Cependant, ce n'est pas très pratique si vous souhaitez l'utiliser sur un autre site, car seules les pages avec ce code JavaScript fonctionneront.
$(document).ready(function (){
var regex = new RegExp("(.jpg|.png)$", "i");
var image = $("img").each(function (){
var src = $(this).attr('src');
if( src.search(regex) == -1){
var index = src.lastIndexOf('.') < 0 ? src.length:src.lastIndexOf('.');
$(this).attr('src',src.substring(0, index) + ".jpg");
}
});
});
Réécrire l'extension en utilisant .htaccess
En utilisant .htaccess
, vous pouvez réécrire vos URL sans inclure le fichier image. Utiliser quelque chose comme ceci devrait faire l'affaire:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.png [NC,L]
Cette méthode vous permettra d'utiliser des URL avec ou sans png. Localement et à l'extérieur. L'avantage de ceci est que vous n'avez pas besoin de perdre du temps à renommer des fichiers image.
Définition du contenu de type MIME via htaccess
En utilisant le fichier httpd.conf ou un fichier htaccess, vous pouvez définir le type de contenu de la page comme suit:
.htaccess (copier dans le dossier de l'image)
ForceType image/png
ou si vous pouvez utiliser le fichier httpd.conf,
<Directory /path-to-images>
ForceType image/png
</Directory>
Négociation de contenu avec mod_negotiation
Qu'est-ce que la négociation de contenu?
La négociation de contenu est une fonctionnalité peu utilisée d'Apache et de IIS qui fournit de manière transparente la meilleure variante de la même ressource aux navigateurs. Les navigateurs indiquent aux serveurs leurs préférences et les serveurs ajustent leurs réponses pour sélectionner la meilleure ressource. Différentes langues, types de fichiers, codages de contenu et jeux de caractères peuvent être automatiquement livrés à différents navigateurs en fonction des préférences fournies par le navigateur et envoyées dans les demandes d'en-tête. Vous pouvez modifier les dimensions suivantes avec la négociation de contenu:
Media type Language Content encoding Charset
Vous pouvez choisir d'utiliser négociation de contenu avec mod_negotiation qui négociera le meilleur format, par exemple, vous avez des fichiers jpg, gif et png, puis l'URL sans l'extension de fichier que le serveur négociera. utiliser sans l'ajouter à l'extension de fichier.