Messages: 5

Enregistré le: 1 Sep 2007

Message le Sam Sep 01, 2007 15:28

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?
Modifié en dernier par sauret le Sam Sep 01, 2007 15:53, modifié 1 fois.
Haut
13 Réponses
Messages: 4568

Enregistré le: 16 Nov 2004

Message le Sam Sep 01, 2007 15:52

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.;
Haut
Messages: 5

Enregistré le: 1 Sep 2007

Message le Sam Sep 01, 2007 15:57

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?
Haut
Messages: 4568

Enregistré le: 16 Nov 2004

Message le Sam Sep 01, 2007 16:09

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.
Haut
Messages: 18369

Enregistré le: 5 Juin 2006

Message le Sam Sep 01, 2007 16:45

sauret a écrit: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
Haut
Messages: 5

Enregistré le: 1 Sep 2007

Message le Dim Sep 02, 2007 19:04

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.
Haut
Messages: 4568

Enregistré le: 16 Nov 2004

Message le Lun Sep 03, 2007 0:23

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
Haut
Messages: 5

Enregistré le: 1 Sep 2007

Message le Lun Sep 03, 2007 8:18

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...) ?
Haut
Messages: 4568

Enregistré le: 16 Nov 2004

Message le Lun Sep 03, 2007 9:10

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>";
Haut
Messages: 15681

Enregistré le: 23 Déc 2003

Message le Lun Sep 03, 2007 9:38

par contre j'ai pas compris pourquoi tu devais passer tes liens en absolu...
Haut
Messages: 4559

Enregistré le: 16 Avr 2006

Message le Lun Sep 03, 2007 9:40

e-kiwi a écrit:par contre j'ai pas compris pourquoi tu devais passer tes liens en absolu...

Parce que dans l'état actuel, ses sous-domaines se placent avant le NDD.

toto.ndd.com.

C'est ça?
Haut
Messages: 5

Enregistré le: 1 Sep 2007

Message le Lun Sep 03, 2007 10:27

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".
Haut
Messages: 12355

Enregistré le: 23 Nov 2005

Message le Lun Sep 03, 2007 10:36

A ta place j'utiliserais des constantes PHP, ca permettra d'éviter de tout faire en dur.
Haut
Messages: 4568

Enregistré le: 16 Nov 2004

Message le Lun Sep 03, 2007 10:49

sauret a écrit: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: Tout sélectionner
<?php
$url = $_SERVER["REQUEST_URI"];
$var = strstr($url,'index.php?id=');
if($var != FALSE){ header("Location: http://".$id.".mondomaine.com/"); }
?>
Haut