matoutoune Posté 29 Janvier 2005 Partager Posté 29 Janvier 2005 (modifié) Salut à tous ! Je post car j'ai un gros problème avec mon .htaccess et l'url rewriting. J'ai un petit moteur de recherche et certaines requètes deviennent difficiles à traduire (pour moi ) Tant que c'était des règles simples, j'y arrivais, mais là, j'ai vraiment beaucoup de mal avec une regle plus compliquée. Je vais avoir des liens de 2 types à rediriger : * .monsite.com/rep/search-mot1-mot2...motn.html vers .monsite.com/rep/search.php?mots=mot1+mot2+...+motn * .monsite.com/rep/search-mot1-mot2...motn_X1_X2_X3_OR.html vers .monsite.com/rep/search.php?mots=mot1+mot2+...+motn&page=X1&nb_results2show=X2&nb_sites_trouves=X3&booleen=OR mot1-mot2...motn : les mots à rechercher dans le moteur. Ils sont séparés par des "-". A noter : les "-" se transformes en "+". _X_X_X_OR : variables de la requête Ils sont séparés par des "_". X1, X2 et X3 sont donc un nombre entier. OR : c'est un exemple mais cette variable doit pouvoir etre soit OR soit AND soit vide. Pour le moment, je m'en tire avec ça : RewriteRule ^search-([^-]+)\.html$ /rep/search.php?mots=$1 RewriteRule ^search-([^-]+)-([^-]+)\.html$ /rep/search.php?mots=$1+$2 RewriteRule ^search-([^-]+)-([^-]+)-([^-]+)\.html$ /rep/search.php?mots=$1+$2+$3 RewriteRule ^search-([^-]+)-([^-]+)-([^-]+)-([^-]+)\.html$ /rep/search.php?mots=$1+$2+$3+$4 Je sais, j'ai honte, c'est code tout pourri, mais je débute avec le .htaccess. Au moins, pour le moment, ça a le merite de marcher (avec toutes les requetes de moins de 5 mots ). Mais bon, c'est vraiment pas optimisé, comme code, surtout que ça ne marche pas du tout pour le 2eme type de requete dont j'ai besoin (avec les _X_X_X_OR). Je suis allé voir là et là pour tenter d'y arriver seul, mais pour le moment je tatonne encore beaucoup trôt. Voilà ! Quelqu'un pourrait-il m'aider. Modifié 29 Janvier 2005 par matoutoune Lien vers le commentaire Partager sur d’autres sites More sharing options...
Bobe Posté 30 Janvier 2005 Partager Posté 30 Janvier 2005 C'est pour un moteur de recherche à priori. Quel est l'intérêt de tout cela ? Les URLs contenant des paramètres sont à bannir totalement ? (Je sais bien que ce n'est pas le sujet mais...) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dan Posté 30 Janvier 2005 Partager Posté 30 Janvier 2005 C'est pour un moteur de recherche à priori. Quel est l'intérêt de tout cela ? Les URLs contenant des paramètres sont à bannir totalement ?(Je sais bien que ce n'est pas le sujet mais...) C'est la question que je me pose aussi. La réécriture d'URLs n'est pas faite pour monter une usine à gaz Ne connaissant pas à l'avance le nombre de mots, il faut introduire de la récursivité qui est traitée dans l'article du Hub que tu mentionnes. Par contre, que se passe-t-il lorsqu'un mot de la recherche comporte un trait d'union ? Dan Lien vers le commentaire Partager sur d’autres sites More sharing options...
matoutoune Posté 30 Janvier 2005 Auteur Partager Posté 30 Janvier 2005 C'est la question que je me pose aussi.La réécriture d'URLs n'est pas faite pour monter une usine à gaz Disons que chacun voit midi à sa porte. J'ai un réel intéret à appliquer cette règle. Si ça marche, je vous expliquerais ! Ne connaissant pas à l'avance le nombre de mots, il faut introduire de la récursivité qui est traitée dans l'article du Hub que tu mentionnes.Par contre, que se passe-t-il lorsqu'un mot de la recherche comporte un trait d'union ? Dan <{POST_SNAPBACK}> Oui j'ai vu le principe de récursivité mais je n'arrive pas à comprendre encore comment l'appliquer. Je vous jure que je ne suis pas un parvenu ou un profiteur de conseils, mais là je cale ! J'ai juste besoin d'un petit coup de pouce pour réécrire ce paquet de règle non-optimisée et lourdes. Merci ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
Bobe Posté 30 Janvier 2005 Partager Posté 30 Janvier 2005 Alors. Je te suggère de retirer le ".html" de ton URL, il n'a aucune signification et est inutile. Et pour la réécriture: RewriteRule ^search-(.+)$ search.php?qs=$1 (qs pour Query String) Et de décomposer cette chaîne dans ton script php. Ce sera plus simple et souple amha. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant