Mes impressions sur le web, les standards et autres…


Mardi 9 décembre 2003

Négociation de contenu avec les documents XHTML

Comme l’indique la note du W3C sur les types de média XHTML, les documents XHTML devraient être envoyés par le serveur avec l’en-tête application/xhtml+xml. Pour les documents dynamiquement générés par un script PHP par exemple, c’est facile la solution a déjà été rappellée sur plusieurs blogs :

if( !empty($_SERVER['HTTP_ACCEPT']) && stristr($_SERVER['HTTP_ACCEPT'], 'application/xhtml+xml') )
{
    header('Content-Type: application/xhtml+xml; charset=iso-8859-15');
}
else
{
    header('Content-Type: text/html; charset=iso-8859-15');
}

Je n’ai rien vu en revanche en ce qui concerne les documents statiques, sauf une courte note à la fin de l’article The Road to XHTML 2.0: MIME Types de Mark Pilgrim. La solution donnée consiste à utiliser le module mod_rewrite d’Apache. Cependant, tout le monde ne dispose pas de ce module.

J’ajoute une autre possibilité : L’utilisation de la négociation de contenu avec l’option MultiViews d’Apache. Certes, cette option n’est pas non plus présente sur tous les serveurs, mais elle est, je pense, plus répandue que le module mod_rewrite. Cette option doit être activée dans le fichier httpd.conf pour votre domaine, ou ajoutée à l’aide d’un fichier .htaccess si cela est autorisé :

Options +MultiViews

Vous devez ensuite avoir un jeu de deux fichiers de même nom pour chacun de vos documents, le premier fichier ayant l’extension .xhtml et le second, l’extension .html. Apache se chargera d’effectuer l’envoi du bon fichier selon l’en-tête accept envoyé par le client. Le fichier devra être appellé dans le navigateur sans son extension. Exemple : http://domaine.tld/foo avec à la racine du domaine domaine.tld les fichiers foo.xhtml et foo.html (Si un seul fichier est présent, Apache l’enverra par défaut).

C’est la technique utilisée par le W3C pour certains de ses documents si j’en juge par le contenu de l’en-tête Content-Location renvoyé.

Publié à 12h46

Catégorie :

Vos réactions, opinions, insultes…

Rétroliens

Faire un rétrolien sur ce billet : [xxxxxxxx]

Commentaires

Pas de commentaire actuellement

Un ch’tit biscuit ?
  • Les champs email et site sont facultatifs
  • Les URLs commençant par [protocole]://[protocole] correspond à http, https, news, irc, ftp, … sont rendues activables automatiquement. Votre adresse email ainsi que d’éventuelles adresses email présentes dans le corps du commentaire sont également rendues activables et encodées pour tromper les aspirateurs d’adresse email.
  • Pour spécifier une URL locale au site, vous pouvez utiliser local comme protocole à mettre à la place de http et omettre le nom de domaine dans l’URL.
    Exemple : local://2005/08/22/Nom-de-billet/.
  • Usez et abusez de la possibilité de prévisualiser votre commentaire pour vérifier qu’il est correctement rédigé et contient le moins possible de fautes d’orthographe. Évitez en outre le style SMS, merci d’avance. Prévisualiser votre commentaire peut également vous permettre de voir si de nouveaux commentaires sont apparus entre temps.
  • Si vous spécifiez l’adresse de votre site dans le champs texte prévu à cet effet, le script se chargera automatiquement d’aller récupérer sur votre site la langue utilisée dans vos pages, soit via l’en-tête HTTP Content-Language, soit en récupérant le contenu de l’attribut xml:lang ou lang sur l’élément html. Vous n’avez indiqué d’aucune façon la langue utilisée dans vos pages ? Corrigez ça nom di diou !
  • Des options de mise en forme des commentaires feront peut-être un jour leur apparition.


Site créé et maintenu par Aurélien Maille aka Bobe. Toutes les heures sont au format CEST.
Revenir à l’accueil – Zone de développement – Informations et accessibilité – CC licensed CC Licensed