Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Outil pour transformer des liens relatifs en liens absolus ?

6 réponses
Avatar
Christophe Lohr
Bonjour,
Je recherche un outil qui éplucherait dans mes fichiers html toutes
les balises du genre href / src / action / backgruond / etc. (bref, tout
ce qui renvoie à une url), et qui vérifierait si l'url donnée est
absolue (commence par la chaîne http) ou relative, puis préfixerait les
url relatives par une chaîne de caractère que je lui indiquerait (e.g
http://www.monsite.org/ici/la/)

Est-ce que vous connaissez un outil faisant cela ?

Je suppose qu'avec des xpath et autre xslt cela doit pouvoir
s'implémenter... si l'on s'y connaît... (ce qui n'est malheureusement
pas mon cas).

Merci de votre aide.
Cordialement.

6 réponses

Avatar
SAM
Le 9/10/09 2:53 PM, Christophe Lohr a écrit :
Bonjour,
Je recherche un outil qui éplucherait dans mes fichiers html toutes
les balises du genre href / src / action / backgruond / etc. (bref, tout
ce qui renvoie à une url), et qui vérifierait si l'url donnée est
absolue (commence par la chaîne http) ou relative, puis préfixerait les
url relatives par une chaîne de caractère que je lui indiquerait (e.g
http://www.monsite.org/ici/la/)

Est-ce que vous connaissez un outil faisant cela ?



Oui, mes p'tites menottes :


<head>
<base href="http://www.monsite.org/ici/la/">

C'est du HTML 2 sinon 3
voir ce qu'en disent les 3 chiottes pour le 4 :
<http://www.la-grange.net/w3c/html4.01/struct/links.html#edef-BASE&gt;

un Test HTML4.01 strict n'a pas déplu au validator

Marche pô pour scripts et styles du head
(à vérifier ... j'ai une mémoire en fromage blanc)

--
sm
Avatar
Christophe Lohr
SAM a écrit :
Le 9/10/09 2:53 PM, Christophe Lohr a écrit :
Bonjour,
Je recherche un outil qui éplucherait dans mes fichiers html toutes
les balises du genre href / src / action / backgruond / etc. (bref, tout
ce qui renvoie à une url), et qui vérifierait si l'url donnée est
absolue (commence par la chaîne http) ou relative, puis préfixerait les
url relatives par une chaîne de caractère que je lui indiquerait (e.g
http://www.monsite.org/ici/la/)

Est-ce que vous connaissez un outil faisant cela ?



Oui, mes p'tites menottes :


<head>
<base href="http://www.monsite.org/ici/la/">



sauf que dans mon cas, ça sera en fait un truc du genre :
http://www.monsite.org/getfile.cgi?filename=/ici/la/

et là... ça ne marche plus dans un <base href...>
Avatar
SAM
Le 9/11/09 8:39 PM, Christophe Lohr a écrit :
SAM a écrit :
Le 9/10/09 2:53 PM, Christophe Lohr a écrit :
Bonjour,
Je recherche un outil qui éplucherait dans mes fichiers html toutes
les balises du genre href / src / action / backgruond / etc. (bref, tout
ce qui renvoie à une url), et qui vérifierait si l'url donnée est
absolue (commence par la chaîne http) ou relative, puis préfixerait les
url relatives par une chaîne de caractère que je lui indiquerait (e.g
http://www.monsite.org/ici/la/)

Est-ce que vous connaissez un outil faisant cela ?


Oui, mes p'tites menottes :


<head>
<base href="http://www.monsite.org/ici/la/">



sauf que dans mon cas, ça sera en fait un truc du genre :
http://www.monsite.org/getfile.cgi?filename=/ici/la/

et là... ça ne marche plus dans un <base href...>



Ha! ben aussi ! à force de complicationner !

Ceci étant, je n'ai donc pas compris comment tu comptais nourir les href
et autres en relatif si tu n'as pas plus d'infos que des digestions de
cgi ...
Avatar
SAM
Le 9/11/09 8:39 PM, Christophe Lohr a écrit :
SAM a écrit :
Le 9/10/09 2:53 PM, Christophe Lohr a écrit :
Bonjour,
Je recherche un outil qui éplucherait dans mes fichiers html toutes
les balises du genre href / src / action / backgruond / etc. (bref, tout
ce qui renvoie à une url), et qui vérifierait si l'url donnée est
absolue (commence par la chaîne http) ou relative, puis préfixerait les
url relatives par une chaîne de caractère que je lui indiquerait (e.g
http://www.monsite.org/ici/la/)

Est-ce que vous connaissez un outil faisant cela ?


Oui, mes p'tites menottes :


<head>
<base href="http://www.monsite.org/ici/la/">



sauf que dans mon cas, ça sera en fait un truc du genre :
http://www.monsite.org/getfile.cgi?filename=/ici/la/



Ben faudrait savoir !
pourquoi l'avoir caché ?

et là... ça ne marche plus dans un <base href...>



Ha! ben, possible ? à force de complicationner !

Ceci étant, je n'ai donc pas compris comment tu comptais nourir les href
et autres en relatif si tu n'as pas plus d'infos que des digestions de
cgi ...

Je suppose qu'un parcours de tous les dossiers et de tous leurs fichiers
(asp, php, html) par une routine (php, asp ...) devrait savoir rajouter
les paths des relatifs ?

Quand on jongle avec les cgi ce doit être de la gnognote à réaliser.

(onaka mettre la routine dans 'getfile.cgi', routine qui ne sera lancée
que si la dernière modif de la page est avant tel jour. À force, le site
entier finira bien par être complètement à jour)

Je parlais de RenameHtml l'autre jour,
ce que tu demandes il savait le faire
(mais peut-être qu'avec les fichiers *.html ? à voir).

--
sm
Avatar
Olivier Miakinen
Le 11/09/2009 20:39, Christophe Lohr a écrit :

<head>
<base href="http://www.monsite.org/ici/la/"&gt" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.monsite.org/ici/la/"&gt;



sauf que dans mon cas, ça sera en fait un truc du genre :
http://www.monsite.org/getfile.cgi?filename=/ici/la/" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.monsite.org/getfile.cgi?filename=/ici/la/

et là... ça ne marche plus dans un <base href...>



Et si tu nous avais tout dit dès le départ ?

Bon, je vois au moins deux solutions :

1) Faire la manip dans getfile.cgi.

2) Lire le fil « "Find and Replace" » pour changer partout
« filename=/ » par « filename=http://www.monsite.org/ ».

--
Olivier Miakinen
Avatar
Christophe Lohr
Olivier Miakinen a écrit :
Le 11/09/2009 20:39, Christophe Lohr a écrit :
<head>
<base href="http://www.monsite.org/ici/la/"&gt" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.monsite.org/ici/la/"&gt;


sauf que dans mon cas, ça sera en fait un truc du genre :
http://www.monsite.org/getfile.cgi?filename=/ici/la/" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.monsite.org/getfile.cgi?filename=/ici/la/

et là... ça ne marche plus dans un <base href...>



Et si tu nous avais tout dit dès le départ ?



désolé, je ne voulais pas trop compliquer la sauce pour expliquer mon
problème... mais j'ai fais un peu trop court ;-)


Bon, je vois au moins deux solutions :

1) Faire la manip dans getfile.cgi.



Le serveur est en fait une grosse base de donnée, avec les fichiers
dedans, accessible par un cgi.
Je n'ai pas la main sur ce serveur.
J'ai déjà demandé à l'admin qu'il installe le module apache qui fait la
réécriture d'url à la volée... mais j'attend qu'il "valide" la
solution... D'ici là, j'essaie de me débrouiller autrement...

La solution que je vois, c'est modifier les href de mes pages html
(générées avec un outil spécifique) avant de les publier sur ce site...


2) Lire le fil « "Find and Replace" » pour changer partout
« filename=/ » par « filename=http://www.monsite.org/ ».



J'ai déjà regardé les outils qui étaient mentionnés dans ce fil de
discussion. J'ai repéré l'outil xmlstarlet qui fait presque ce que je
veux... mais pas complètement :
http://sourceforge.net/projects/xmlstar/forums/forum/226076/topic/3395990

Est-ce que vous pensez à un autre outil qui serait plus adapté ?
(je recherche surtout quelque chose de scriptable, typiquement en ligne
de commande)

Merci.