Aller au contenu

Sujets conseillés

Posté (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 :D). 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 et pour tenter d'y arriver seul, mais pour le moment je tatonne encore beaucoup trôt.

Voilà !

Quelqu'un pourrait-il m'aider.

Modifié par matoutoune
Posté

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...)

Posté
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

Posté
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 ! :boude: J'ai juste besoin d'un petit coup de pouce pour réécrire ce paquet de règle non-optimisée et lourdes.

Merci !

Posté

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.

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...