nerique Posté 26 Juin 2006 Posté 26 Juin 2006 Bonjour, J'utilise la réécriture d'URL en général, et cela ne me pose pas de problèmes, j'ai toute une série de choses dans le genre : Pour l'URL : http://www.monsite.com/rep/i_love_you,fr_FR,444.html RewriteRule ^(.*),(([a-zA-Z]{2})_([a-zA-Z]{2})),([0-9]+).html$ /rep/index.php?key1=$1&key2=$2&key3=$5 [NC,L] mais pourtant je ne parviens pas à réécrire une URL de ce type : http://www.monsite.com/rep/i_love_you En gros, j'essaye ca : RewriteRule ^(.*)$ /s/index.php?key1=$1 [NC,L] et je me récupère des erreurs et des Internal Server Configuration.... Quelqu'un pourrait-il me donner un bon conseil ? Merci
Dan Posté 27 Juin 2006 Posté 27 Juin 2006 Je pense que tu ne pourras pas, en tout cas pas aisément. La première réécriture contient vraisemblablement un numéro (d'article, page, rubrique ou équivalent) qui est utilisé par le script pour extraire l'info de la base de données. La deuxième n'a que le titre, et il te faudra donc modifier ton script pour pouvoir récupérer les données sur cette base.
TheRec Posté 27 Juin 2006 Posté 27 Juin 2006 Effectivement... l'expression ^(.*)$ seule semble poser problème... Et je ne trouve pas de référence à ce problème dans la documentation :S En fait il y a une certaine logique derrière cela à mon avis... imaginons que tu Réécrives en utilisant cette expression qui signifie n'importe quel caractère (ou même aucun)... Lorsque la requête vers le document réécrit est effectuée la règle est à nouveau vérifiée, vu que (à moins que la ressource se trouve à une autre adresse) elle est forcément composée de n'importe quel caractère... (Tu vois ou je veux en venir ?). En utilisant une classe de caractère moins "large" cela ne semble pas poser de problème... RewriteRule ^([a-z0-9_-]+)[/]?$ /s/index.php?key1=$1 [NC,L] Tu peux aussi régler ton problème en plaçant la règle un niveau au dessus du répertoire qui est utilisé dans l'URL (dans ton cas cela correspond à la racine de ton site et ensuite d'ajouter le chemin dans l'expression régulière : RewriteRule ^rep/(.+)[/]?$ /s/index.php?key1=$1 [NC,L] Sinon je ne vois pas... ensuite, comme l'a dit Dan en d'autres termes...le paramètre que tu récupère devra être unique et te mener aux données que tu souhaites afficher... (avec les autres URL tu as l'ID (surement unique et clé primaire de ta table) pour récupérer ton élément, là tu n'as que du texte, donc tu dois t'assurer qu'il est aussi unique).
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant