IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Apache Discussion :

ajouter header link canonical


Sujet :

Apache

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2013
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 59
    Points : 43
    Points
    43
    Par défaut ajouter header link canonical
    Bonjour à tous.

    Je suis en train de mettre en place plusieurs sous domaines afin des servir mes médias et ainsi augmenter le nombre de téléchargement parallèle

    Mais je souhaiterais ajouter dans le header de chaque image appelée, un link canonical renvoyant vers le sous domaine principal:

    http://img1.example.tld/1.jpg ou http://img2.example.tld/1.jpg ou http://img1.example.tld/1.jpg
    renvoye dans les headers:
    Link: <http://www.example.tld/1.jpg>; rel="canonical"

    Cependant j'ai du mal à écrire la règle htaccess qui permettrais cela car les urls images sont récritent
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    RewriteCond %{HTTP_HOST} ^exemple.tld$
    RewriteRule ^([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$1$2$3.jpg [L]
    L'idée serait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    RewriteRule ([^/]+)\.jpg$ - [E=FILENAME:$1]
    <FilesMatch "\.jpg$">
    	Header add Link '<http://www.example.tld/%{FILENAME}e.jpg>; rel="canonical"'
    </FilesMatch>
    mais dans ce cas {FILENAME} correspond à l'image physique et non l'image réecrite.



    En dautre term:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    	RewriteRule . - [E=REQUEST_URI:%{REQUEST_URI}]
    	RewriteRule . - [E=REQUEST_FILENAME:%{REQUEST_FILENAME}]
    	RewriteRule . - [E=THE_REQUEST:%{THE_REQUEST}]
     
    	Header add REQUEST_URI '%{REQUEST_URI}e'
    	Header add REQUEST_FILENAME '%{REQUEST_FILENAME}e'
    	Header add THE_REQUEST '%{THE_REQUEST}e'
    REQUEST_URI: /img/p/1/9/4/194-home.jpg
    REQUEST_FILENAME: /var/www/html/img/p/1/9/4/194-home.jpg
    THE_REQUEST: GET /les-photo/194-home/mon-image-reecrite.jpg HTTP/1.1
    dans cette exemple REQUEST_URI & REQUEST_FILENAME me renvoie l'adresse physique => /var/www/html/img/p/1/9/4/194-home.jpg
    et THE_REQUEST me renvoie la requete => GET /les-photo/194-home/mon-image-reecrite.jpg HTTP/1.1

    hors je souhaiterais seulement:
    /les-photo/194-home/mon-image-reecrite.jpg

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Dans ta première règle, pourquoi tu ne définis pas une variable d'environnement qui vaut %{REQUEST_URI} que tu utilises par la suite dans ta directive Header ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    RewriteCond %{HTTP_HOST} ^exemple.tld$
    RewriteRule ^([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$1$2$3.jpg [E=THE_FILE:%{REQUEST_URI},L]
    ...
    <FilesMatch "\.jpg$">
    	Header add Link '<http://www.example.tld/%{THE_FILE}e.jpg>; rel="canonical"'
    </FilesMatch>
    Je n'ai pas essayé, je ne sais pas si ça marche.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2013
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 59
    Points : 43
    Points
    43
    Par défaut
    Citation Envoyé par _Mac_ Voir le message
    Dans ta première règle, pourquoi tu ne définis pas une variable d'environnement qui vaut %{REQUEST_URI} que tu utilises par la suite dans ta directive Header ?
    Bah parce que j'y avais pas pensé.

    Cependant ca me renvoie toujours (null)

    et j'ai tenté:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	RewriteCond %{HTTP_HOST} ^example.tld$ 
    	RewriteRule . - [E=THE_FILE:%{REQUEST_URI}]
    Mais cela me renvoie toujoursl'adresse physique.

    Merci _mac.
    J'avais pas vu la réponse

Discussions similaires

  1. Réponses: 1
    Dernier message: 08/08/2012, 16h49
  2. Ajouter Header Dynamiquement
    Par ThomasParis dans le forum Services Web
    Réponses: 1
    Dernier message: 03/08/2010, 16h35
  3. Réponses: 1
    Dernier message: 01/10/2008, 12h33
  4. Réponses: 6
    Dernier message: 04/06/2008, 11h48
  5. [TListView] Ajouter un icône de tri dans le header
    Par phplive dans le forum Composants VCL
    Réponses: 1
    Dernier message: 25/09/2005, 14h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo