OK, mais dois-je réécrire tous mes liens dans mon HTML?

Discussion dans 'URL Rewriting et .htaccess' créé par sauret, 1 Septembre 2007.

  1. sauret
    sauret Nouveau WRInaute
    Inscrit:
    1 Septembre 2007
    Messages:
    5
    J'aime reçus:
    0
    Voilà, je possède un site web et je viens d'activer le rewriting pour utiliser les sous-domaines.
    Maintenant mon url http://toto.monsite.com est interprétée en http://www.monsite.com/index.php?id=toto

    C'est bcp mieux, mais maintenant dois-je modifier tout le code source des pages HTML pour modifier tous mes liens <a href="index.php?id=xxx"> ?

    D'autant que tous mes liens sont en relatif. Faut-il que je les réécrive en absolu comme cela : <a href="xxx.monsite.com">? et donc en étant dépendant de mon nom de domaine?

    Est-ce que Apache est capable de remplacer automatiquement mon code HTML (<a href>) à la volée à partir des règles de rewriting?
     
  2. KOogar
    KOogar WRInaute accro
    Inscrit:
    16 Novembre 2004
    Messages:
    4 552
    J'aime reçus:
    0
    Ben oui, tu dois refaire tous les liens manuellement;
    Apache ne t'aidra pas beaucoup sur ce coup, Apache n'est qu'un serveur qui interprete du php. C'est a toi de refaire le code.;
     
  3. sauret
    sauret Nouveau WRInaute
    Inscrit:
    1 Septembre 2007
    Messages:
    5
    J'aime reçus:
    0
    Merci Koogar.
    N'existe-t-il pas des serveurs en frontal qui permettent de faire la transormation à la volée sans avoir à réécrire le code? Et comment s'appellent-t-ils? (reverse proxy?) Squid par exemple?
     
  4. KOogar
    KOogar WRInaute accro
    Inscrit:
    16 Novembre 2004
    Messages:
    4 552
    J'aime reçus:
    0
    c'est quoi un lien relatif ? pour moi 1 lien reste 1 lien,; <a href=>

    et pour le serveur, tu voudrais qu'il change a la volée les urls au moment d'envoyer les pages au navigateur ? Je ne connais pas ce type d'action mais je serais interresser d'en savoir + si c'est possible.
     
  5. Marie-Aude
    Marie-Aude WRInaute accro
    Inscrit:
    5 Juin 2006
    Messages:
    18 362
    J'aime reçus:
    0
    Je ne vois pas l'intérêt de charger le serveur à faire la modif à chaque chargement de page, alors qu'une simple modif des liens au niveau du site dans Dreamweaver, ou une recherche texte te permettra de le faire
     
  6. sauret
    sauret Nouveau WRInaute
    Inscrit:
    1 Septembre 2007
    Messages:
    5
    J'aime reçus:
    0
    Ce que j'entends par lien relatif est <a href="lien.html"> et par lien absolu <a href="http://www.monsite.com/lien.html">. L'utilisation de liens relatifs me permet d'être indépendant de mon nom de domaine.

    Il me semble que le reverse proxy d'IBM (webseal) permet de transformer les urls à la volée, mais je ne sais pas si il en existe d'autres.
     
  7. KOogar
    KOogar WRInaute accro
    Inscrit:
    16 Novembre 2004
    Messages:
    4 552
    J'aime reçus:
    0
    okii, mais nous travaillons tous en relatif!! c'est banane de travailler en absolu dés que l'on veut deplacer un module. (puis ca charge + le poid des pages inutilement))) Mais cela ne change rien au probleme, absolu ou relatif, il faut refaire les liens.



    Va y, on est chaud la, dis nous pourquoi ca te gonfle de réécrire les liens manuellement ?



    PS : Merci pour l'info du serveur, je ne connaissais pas
     
  8. sauret
    sauret Nouveau WRInaute
    Inscrit:
    1 Septembre 2007
    Messages:
    5
    J'aime reçus:
    0
    En fait, mon site a bien été codé avec des URL relatives (href="/index.php?id=toto") : donc pas de pb de portabilité, de dépendance, etc...

    MAIS, avec l'utilisation de l'URL rewriting, j'ai besoin de changer mes liens en qqchose comme : href="http://toto.monsite.com", ce qui, malheureusement, est un lien "absolu" puisqu'il se base sur mon nom de domaine "monsite.com".

    D'où ma question : dois-je réécrire "en dur" les URL avec le nom de domaine? quitte à être fortement dépendant de mon nom de domaine, et donc à ne plus être portable? Ou bien existent-ils des solutions élégantes ou astuces (scripts générant les URLs, etc...) ?
     
  9. KOogar
    KOogar WRInaute accro
    Inscrit:
    16 Novembre 2004
    Messages:
    4 552
    J'aime reçus:
    0
    ok, mais je vois pas ou est le probleme. Sur ton site tu dois avoir un rewrite dans ce genre :

    et tu reecris les liens, tu en a pas des centaines quand meme...

    ancienne url
    echo "<href=http://www.monsite.com/index.php?id=$id>"

    nouvelle url
    echo "<href=http://$id.monsite.com>";
     
  10. e-kiwi
    e-kiwi WRInaute accro
    Inscrit:
    23 Décembre 2003
    Messages:
    15 681
    J'aime reçus:
    0
    par contre j'ai pas compris pourquoi tu devais passer tes liens en absolu...
     
  11. salva
    salva WRInaute accro
    Inscrit:
    16 Avril 2006
    Messages:
    4 559
    J'aime reçus:
    0
    Parce que dans l'état actuel, ses sous-domaines se placent avant le NDD.

    toto.ndd.com.

    C'est ça?
     
  12. sauret
    sauret Nouveau WRInaute
    Inscrit:
    1 Septembre 2007
    Messages:
    5
    J'aime reçus:
    0
    Oui, Salva, c'est exactement ça. (J'ai vraiment du mal à expliquer un pb tout simple...)

    Effectivement, je ne souhaite pas voir apparaitre le texte "monsite.com" dans le code de mes pages HTML (afin de les rendre indépendantes de tout nom de domaine). En effet, demain je peux très bien vouloir migrer vers "autresite.com".

    Or je veux pouvoir utiliser des liens du style "toto.monsite.com". Malheureusement, ce lien comporte en effet le nom de domaine "monsite.com".
     
  13. UsagiYojimbo
    UsagiYojimbo WRInaute accro
    Inscrit:
    23 Novembre 2005
    Messages:
    12 466
    J'aime reçus:
    12
    A ta place j'utiliserais des constantes PHP, ca permettra d'éviter de tout faire en dur.
     
  14. KOogar
    KOogar WRInaute accro
    Inscrit:
    16 Novembre 2004
    Messages:
    4 552
    J'aime reçus:
    0

    merci, c'est deja + clair :D

    laisse donc tes liens en place
    et tout en haut de ta page index.php :

    fais une banale redirection php

    Code:
    <?php
    $url = $_SERVER["REQUEST_URI"];
    $var = strstr($url,'index.php?id=');
    if($var != FALSE){ header("Location: http://".$id.".mondomaine.com/"); }
    ?>