J'utilise une société d'hébergement et il listera les fichiers dans un répertoire si le fichier index.html
n'est pas là, il utilise iso-8859-1 comme encodage par défaut.
Si le serveur est Apache, existe-t-il un moyen de définir UTF-8 comme valeur par défaut?
Mise à jour: De plus, j'ai découvert qu'il utilise en fait un DOCTYPE de HTML 3.2 et qu'il n'y a pas de jeu de caractères du tout ... donc il ne définit aucun encodage. Mais y a-t-il un moyen de le changer pour utiliser UTF-8?
apache
character-encoding
apache-config
non-polarité
la source
la source
/etc/apache2/conf-available/charset.conf
Ajoutez ceci à votre
.htaccess
:Ou, si vous avez des droits d'administrateur, vous pouvez le définir globalement en modifiant
httpd.conf
et en ajoutant:(Vous pouvez également utiliser
AddDefaultCharset
dans.htaccess
, mais cela n'affectera pas les listes de répertoires générées par Apache de cette façon.)la source
.htaccess
peut également affecter tous les sous-répertoires, probablement apache recherchera tout.htaccess
le répertoire parent jusqu'au répertoire racine du dossier du site Web.htaccess
fonctionne sur tous les serveurs - cela affecte également tous les sous-répertoires. Cependant, les pages de liste de répertoires générées par Apache ne peuvent pas être forcées à UTF-8 à l'aide de.htaccess
(AFAIK)..htaccess
fichiers est généralement une mauvaise pratique. Les bogues deviennent plus difficiles à suivre lorsque les paramètres du serveur sont répartis sur divers fichiers. Il y a aussi un léger impact sur les performances: avec chaque fichier demandé, Apache doit lire le.htaccess
fichier du répertoire et tous les.htaccess
fichiers des répertoires parents..htaccess
ne doit donc être utilisé que pour les paramètres spécifiques du répertoire (par exemple, empêcher l'accès à un répertoire spécifique) ou lorsqu'il n'y a absolument aucune possibilité d'obtenir des droits d'administrateur.Voir la directive AddDefaultCharset , la directive AddCharset , et cet article .
la source
Placer
AddDefaultCharset UTF-8
dans/etc/apache2/conf.d/charset
. En fait, c'est déjà là. Il vous suffit de le décommenter en supprimant le précédent#
.la source
/etc/apache2/conf.d/charset
. Il s'agit d'un fichier d'inclusion personnalisé par votre distribution. Comme tout autre fichier qui ne l'est pashttpd.conf
./etc/apache2/conf-enabled/charset.conf
sur ma distribution (Ubuntu 16.4) .Aussi n'a pas fonctionné.Dans .htaccess, ajoutez cette ligne:
C'est pour ceux qui n'ont pas accès au fichier de configuration de leur serveur. C'est juste une chose de plus à essayer lorsque d'autres tentatives ont échoué.
En ce qui concerne les problèmes de performances concernant l'utilisation de .htaccess, je n'ai pas vu cela. Mes temps de chargement de page typiques sont de 150 à 200 ms avec ou sans .htaccess
À quoi servent les performances si votre page ne s'affiche pas correctement. La plupart des serveurs partagés n'autorisent pas l'accès des utilisateurs au fichier de configuration, qui est l'emplacement préféré pour ajouter un jeu de caractères.
la source
.htaccess
fichiers, ne commencez pas maintenant. Il y a des raisons de performance et d'administration pour lesquelles c'est une mauvaise idée (tm)Je ne sais pas si vous avez accès à la configuration Apache (httpd.conf) mais vous devriez pouvoir définir une directive AddDefaultCharset. Voir:
http://httpd.apache.org/docs/2.0/mod/core.html
Recherchez le module mod_mime.c et assurez-vous que ce qui suit est défini:
ou la documentation Apache 1.x équivalente ( http://httpd.apache.org/docs/1.3/mod/core.html#adddefaultcharset ).
Cependant, cela ne fonctionne que lorsque "le type de contenu de la réponse est text / plain ou text / html".
Vous devez également vous assurer que vos pages ont également un jeu de caractères. Voir ceci pour plus d'informations:
http://www.w3.org/TR/REC-html40/charset.html
la source
Ceci n'a pas été testé mais fonctionnera probablement.
Dans votre fichier .htaccess, mettez:
Cependant, cela nécessitera des mod_headers sur le serveur.
la source
<Files>
balises.Pour être complet, sur Apache2 sur Ubuntu, vous trouverez le jeu de caractères par défaut dans charset.conf dans conf-available.
Décommentez la ligne
la source
Là où tous les fichiers HTML sont en UTF-8 et n'ont pas de balises méta pour le type de contenu, je n'ai pu définir la valeur par défaut nécessaire pour que ces fichiers soient envoyés par Apache 2.4 en ajoutant les deux directives:
la source
Juste un indice si vous avez des noms de fichiers longs dans utf-8: par défaut, ils seront raccourcis à 20 octets, il peut donc arriver que le dernier caractère soit "coupé en deux" et donc non reconnu correctement. Ensuite, vous souhaiterez peut-être définir les paramètres suivants:
IndexOptions Charset=UTF-8 NameWidth=*
NameWidth
Le réglage empêchera de raccourcir les noms de vos fichiers, les rendant ainsi correctement affichés et lisibles.Comme d'autres utilisateurs l'ont déjà mentionné, cela devrait être ajouté dans
httpd.conf
ouapache2.conf
(si vous avez des droits d'administrateur) ou dans.htaccess
(si vous ne l'avez pas).la source
Laissez-le vide:
'default_charset' in WHM :::::: default_charset =''
ps - Dans WHM aller --------) Accueil »Configuration du service» Éditeur de configuration PHP ----) cliquez sur 'Mode avancé' ----) recherchez 'default_charset' et laissez-le vide ---- juste rien, pas utf8, pas ISO
la source
Dans mon cas, ajoutez à .htaccess
la source