Salut !

Je suis en train de bidouiller mon serveur pour qu'il puisse répondre de manière spécifique à certain navigateur (si on peut l'appeler ainsi...) en lui fournissant des ressources suffixée de la sorte : resource@IE.x.

Avec les qq lignes qui suivent j'y suis arrivé mais il me manque une chose. Tout d'abord voici lesdites lignes :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
    # Is the client Internet Explorer?
    RewriteCond     %{HTTP_USER_AGENT} MSIE
    # Process only original resources (not these which already ends with "@IE")
    RewriteRule     !^(.*)@IE\.([^\.]*)$ - [C]
    # Does the targeted resource exist?
    RewriteCond     $1@IE\.$2 -U
    # Link to the "@IE"-suffixed corresponding resource.
    RewriteRule     ^(.*)\.([^.]*)$ $1@IE\.$2 [C,L]
Je ne suis pas encore super à l'aise avec mod_rewrite donc n'hésitez pas à me corriger en tout point s'il y a lieu, voire m'indiquer d'autres manières de faire ce qui est déjà fait.

Ce qui, visiblement, me manque de l'énoncé c'est : si la ressource suffixée par @IE n'existe pas, choisir la ressource commune (à savoir la ressource indiquée par l'URL originelle). En effet, en considérant que les pages index.html et index@IE.html existent j'obtiens bien la bonne page selon le navigateur. Mais lorsque je supprime la page index@IE.html Apache me retourne le code 404 alors que j'aimerais qu'il me retourne index.html.
J'ai imaginé que mes quelques règles n'affecteraient pas l'URL dans le cas où la ressource suffixée n'existait mais on dirait que ça cloche.

Quelqu'un saurait-il m'éclairer ?

Merci !

* coloration en rapport avec la réponse qui suit.