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

Nouveau WRInaute
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?
 
WRInaute accro
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.;
 
Nouveau WRInaute
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?
 
WRInaute accro
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.
 
WRInaute accro
sauret a dit:
Est-ce que Apache est capable de remplacer automatiquement mon code HTML (<a href>) à la volée à partir des règles de rewriting?

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
 
Nouveau WRInaute
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.
 
WRInaute accro
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
 
Nouveau WRInaute
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...) ?
 
WRInaute accro
ok, mais je vois pas ou est le probleme. Sur ton site tu dois avoir un rewrite dans ce genre :

RewriteCond %{QUERY_STRING} ^index.php?id=(.+)$
RewriteRule ^.*$ http://%1.monsite.com

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>";
 
Nouveau WRInaute
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".
 
WRInaute accro
sauret a dit:
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".


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/"); }
?>
 
Discussions similaires
Haut