Coder de maniere unique chaque enregistrement

WRInaute discret
Bonsoir,

un exemple est tj plus parlant:

-www.toto.com/nom-promenons_nous_dans_les_bois_pendant_que_le_loup.html

:arrow: -www.toto.com/nom-xkz47oup6.html
ou
:arrow: -www.toto.com/xkz47oup6.html , peu importe .

Tout cela genere par UR chaque nom de maniere UNIQUE

Comment puis-je faire cela?

thks
 
WRInaute occasionnel
Je dirais que la directive RewriteMap est ta nouvelle amie. Ca risque d'être un poil lourd si tu utilises ca dans un .htaccess, mais à toi de voir.

Le plus simple est de passer par un fichier texte dans lequel tu écris toutes les correspondances que tu veux faire :
Code:
##
## correspondances
##

nom-promenons_nous_dans_les_bois_pendant_que_le_loup.html nom-xkz47oup6.html
et les règles d'UR vont chercher le fichier adéquat
Code:
RewriteMap correspondances txt:/chemin/vers/rewritemap.txt
RewriteCond ${correspondances :$1|NOT-FOUND} !=NOT-FOUND
RewriteRule ^(.*)$ ${correspondances:$1} [L]

Ca, c'est pour un .htaccess à la racine. Pour un httpd.conf, il faut le modifier un peu, avec par exemple
Code:
RewriteMap correspondances txt:/chemin/vers/rewritemap.txt
RewriteCond ${correspondances :$1|NOT-FOUND} !=NOT-FOUND
RewriteRule ^/(.*)$ ${correspondances:$1} [L]
 
WRInaute occasionnel
Correction, on ne peut apparemment pas déclarer une directive RewriteMap dans un .htaccess, il faut la mettre dans la conf de base ou du vhost. Les autres directives restent en l'état.

Doc Apache a dit:
While you cannot declare a map in per-directory context it is of course possible to use this map in per-directory context.
 
WRInaute discret
zut :cry:

En plus, un fichier texte de correspondance, ca me plait pas trop, car il faudrait ainsi que je rentre chaque enregistrement et sa correspondance dedans -> gros fichier !
Et pour les nouveaux, bon c est pas trop un pb, il faudrait ouvrir le fichier, se mettre a la fin, et ajouter la correspondance pour le nouvel enregistr.

D autre idees :?:
 
WRInaute occasionnel
Il va bien falloir que u indiques les correspondances quelque part, non? Ou il y a quelque chose que je n'ai pas compris?
Par ailleurs, un fichier texte comme ca, ca se génère, surtout si tu les as dans une base de données.

Tu peux aussi tenter une variante du RewriteMap qui portera sur un programme plutôt qu'un fichier texte. C'est dans la doc sus-citée, à l'onglet External Rewriting Program. Attention, c'est assez périlleux.
 
WRInaute discret
nikoshr a dit:
Il va bien falloir que u indiques les correspondances quelque part, non?

Pas forcement.

Imaginon que ce soit des chiffres.

-www.toto.com/4512.html que je veux transformer en
-www.toto.com/9024.html

-www.toto.com/2123.html -> -www.toto.com/4246.html

Cela est bien code de maniere unique, par le fait d appliquer l algo simple de multiplier par 2, sans pour autant faire de correspondance dans un fichier.
 
WRInaute occasionnel
Dans ce cas là, tu mets juste une règle qui renvoie systématiquement vers un fichier php (avec des condition ad hoc pour limiter à une structure claire)
Code:
RewriteRule ^nom-(.*)\.html$ correspondance.php?file=$1 [L]
et dans le fichier tu inclues le contenu correspondant (en ayant multiplié par deux le nom de fichier, si tu veux :) ). Ca t'irait comme ca?
 
WRInaute discret
Cette regle me convient; c est grossierement celle ci que je prevoyai de faire.

Neanmoins, je ne sais toujours pas quel algo pour convertir mes pages de facon UNIQUE et que les pages ainsi codees soit plus courte ( car c ca mon but, passer de plus de 255 caracteres a qq caracteres seulement)

La, dans le dernier exemple c etait va des chiffres, avec le fait de multiplier par 2.

Par contre pour :

-www.toto.com/nom-promenons_nous_dans_les_bois_pendant_que_le_loup.html

-www.toto.com/nom-xkz47oup6.html

C est une autre histoire... ( le petit chaperon rouge :lol: :lol: )

ca n existe pas une fonction php qui fait ca?

Ou meme un script, peu importe. J' ai bien constate que c etait faisable en ASP, PERL pq pas en php??
 
WRInaute discret
Personne n a d idee :cry:

En fait, il me faudrait une methode d encryptage/decryptage php, un peut comme mdp5 pour le codage des mots de pass. (sachant de mdp5, lui, il genere une chaine plus longue et moi je veux l inverse)
 
WRInaute discret
Merci de toutes tes reponses ;)

mais j 'ai cherche un peu toute sorte de solution, dont la compression zip...

Mais c pas top!

Avoir mes urls comme ca: -www.toto.com/±ý‗☻.html,

ça le fait pas :lol:
 
WRInaute discret
:idea:

Bon, j ai trouvé :D

Il faut travailler sur les modulo, ou base 16,32.. en transformant chaque caractere.

ca va le faire.

Ouf
 
Discussions similaires
Haut