Page 1 sur 1

xml url relative et absolu

Posté : 22 nov. 2007, 17:13
par christobal
Bonjour,
Je viens de rencontrer un pb très gênant dans mon flus rss.
En effet mon flux est généra avec les article que nous produisons. Il nous arrive aussi de mettre dans ces articles des lien interne entre articles (<a href="inscription-aux-sorties.html">ici</a>).
Certes dans le code du flux l'url est bonne mais quand je clic sur le lien l'url est www.monsite/xml/ inscription-aux-sorties.html.
J'ai bien compris que si dans l'url se trouve /xml/ c'est parce que le fichier rss.xml se trouve dans le dossier /xml/.
Ma question est donc : Comment faire pour empêcher que soit affiché /xml/. Si non les liens ne marcheront pas.

merci

Re: xml url relative et absolu

Posté : 29 nov. 2007, 09:39
par Hubert Roksor
À ma connaissance, les liens doivent être absolus, donc ta seule option est d'utiliser des liens absolus. À la limite, tu n'es pas obligé de taper le "http://" et tu peux te contenter de

Code : Tout sélectionner

<a href="/inscription-aux-sorties.html">...</a>
Si ton HTML est mélangé au reste du RSS tu devrais pouvoir utiliser XPath via SimpleXML pour localiser les liens locaux et les modifier
foreach ($rss->xpath('//a[@href][starts-with(@href, "/") = false]') as $a)
{
	$a['href'] = '/' . $a['href'];
}

Posté : 29 nov. 2007, 18:36
par Victor BRITO
Pour un flux RSS, les liens doivent être impérativement absolus, et donc commencer par "http://www.tonsite.com" (sinon, ton flux risque de ne pas être validé par les validateurs RSS). N'oublie pas que les lecteurs de flux rendent les éléments link cliquables et qu'ils sont étrangers à tout site. :wink: