Page 1 sur 1

Probleme URL rewriting dans site d'annonce

Posté : 13 avr. 2011, 14:30
par Gregory 31
Bonjour,

Je poste un message car j'ai besoin d'aide. Je vous explique la situation..

J'ai mis en place un site d'annonce et je me bat avec le fichier htaccess pour ré-écrire les URL rewriting.

Voici mon htaccess :

Options +FollowSymlinks
RewriteEngine on
RewriteBase /


RewriteRule ^index\.html index.php [nc]
RewriteRule ^annonces-recentes\.html recent_ads.php [nc]
RewriteRule ^register\.html register.php [nc]
RewriteRule ^pre-register\.html pre-register.php [nc]
RewriteRule ^login\.html login.php [nc]
RewriteRule ^deconnexion\.html logout.php [nc]
RewriteRule ^favoris\.html favourites.php [nc]
RewriteRule ^contact\.html contact.php [nc]
RewriteRule ^advanced_search\.html advanced_search.php [nc]
RewriteRule ^listings\.html listings.php [nc]
RewriteRule ^pre-submit\.html pre-submit.php [nc]
RewriteRule ^([0-9]+)-([^\/]+)?/content.html$ content.php?id=$1 [nc,qsa]
RewriteRule ^([0-9]+)-([^\/]+)/index.html$ index.php?category=$1 [nc,qsa]

RewriteRule ^([0-9]+)-([^\/]+)/details\.html$ details.php?id=$1&category=$2 [nc,qsa]

RewriteRule ^([^\/]+)/([^\/]+)/([^\/]+)/recent_ads.html$ recent_ads.php?page=$1&order=$2&order_way=$3 [nc,qsa]
RewriteRule ^([0-9]+)-([^\/]+)/user_listings\.html$ user_listings.php?id=$1 [nc,qsa]
RewriteRule ^([0-9]+)-([^\/]+)/([^\/]+)/([^\/]+)/([^\/]+)/user_listings.html$ user_listings.php?id=$1&page=$3&order=$4&order_way=$5 [nc,qsa]
RewriteRule ^([^\/]+)/([^\/]+)/([^\/]+)/favourites.html$ favourites.php?page=$1&order=$2&order_way=$3 [nc,qsa]

RewriteRule ^([0-9]+)-([^\/]+)/listings\.html$ listings.php?page=$9 [nc,qsa]
RewriteRule ^([^/]*)\|([^/]*)\|([^/]*)/listings\.html$ /listings.php?id=$1&make=$2&model=$3
RewriteRule ^([0-9]+)-([^\/]+)/([^\/]+)/listings\.html$ listings.php?category=$1&page=$3 [nc,qsa]
RewriteRule ^([0-9]+)-([^\/]+)/listings\.html$ listings.php?page=$1&order=$2&order_way=$3 [nc,qsa]
RewriteRule ^([0-9]+)-([^\/]+)/([^\/]+)/listings\.html$ listings.php?category=$1&page=$9&order=$4&order_way=$5 [nc,qsa]



Alors, la ligne en rouge représente la règles des annonces et les lignes en bleues représentent les règles des catégories.
Les annonces sont rattaché au fichier détails.php et les catégories au fichier listings.php

Mon problème c'est que dans chaque catégorie du site, toute les annonces sont affiché, alors que le but c'est d'afficher les annonces en rapports avec la catégorie. Comment je peux faire.. je ne sais pas.

mon futur site est : http://www.particuliers-a-particuliers.fr/

J'ai mis 3 annonces en test vous aller voir. Le titre s'affichent bien dans les annonces mais le souci c'est quelles sont toutes dans toutes les catégories. Si vous pouvez m'aider je vous en remercie tous d'avance ! Le script utiliser est oxyclassifieds. :oops:

Merci a tous d'avance !

Re: Probleme URL rewriting dans site d'annonce

Posté : 13 avr. 2011, 16:13
par moogli
salut,

il n'y a pas d'url rewriting sur ton site .... (pour info le code postal de quimper c'est 29000, Bretagne ;) ).

au niveau des règles
RewriteRule ^([0-9]+)-([^\/]+)/listings\.html$ listings.php?page=$9 [nc,qsa] <= 9 n'existe pas la y a 1 et 2
RewriteRule ^([^/]*)\|([^/]*)\|([^/]*)/listings\.html$ /listings.php?id=$1&make=$2&model=$3
RewriteRule ^([0-9]+)-([^\/]+)/([^\/]+)/listings\.html$ listings.php?category=$1&page=$3 [nc,qsa]
RewriteRule ^([0-9]+)-([^\/]+)/listings\.html$ listings.php?page=$1&order=$2&order_way=$3 [nc,qsa]
RewriteRule ^([0-9]+)-([^\/]+)/([^\/]+)/listings\.html$ listings.php?category=$1&page=$9&order=$4&order_way=$5 [nc,qsa] <= idem !

a tu testé ces règles individuellement ? (ou pas groupe concerné ?)

a tu envisagé le flag L ?

@+

Re: Probleme URL rewriting dans site d'annonce

Posté : 14 avr. 2011, 09:34
par Gregory 31
Coucou !

Alors j'ai pas tester ces règles individuellement, sauf pour RewriteRule ^([0-9]+)-([^\/]+)/details\.html$ details.php?id=$1&category=$2 [nc,qsa] qui affiche bien les annonces. Je vais le faire aujourd'hui et je te tiens au courant. J'ai corrigé le code postal de Quimper :)

Quand tu met ca : 9 n'existe pas la y a 1 et 2, j'avais mis 9 au pif j'avoue, mais a la base c'etait 1 ou 2 je sais plus. Mais il correspond a quoi ce numéro ?

Pour les URL réécrites j'avais desactivé le mode rewriting hier je les remis aujourd'hui, tu pourras voir ce que ca fait quand tu vas dans les catégories.

A toute à l'heure :)

Re: Probleme URL rewriting dans site d'annonce

Posté : 14 avr. 2011, 12:37
par Gregory 31
Re,

Bon j'ai vu quelle ligne appartenais au quoi sur le htaccess :

Options +FollowSymlinks
RewriteEngine on
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^www.index\.html$ WWW.index.php [L]
RewriteRule ^annonces-recentes\.html recent_ads.php [L]
RewriteRule ^register\.html$ register.php [L]
RewriteRule ^pre-register\.html$ pre-register.php [L]
RewriteRule ^login\.html$ login.php [L]
RewriteRule ^deconnexion\.html$ logout.php [L]
RewriteRule ^favoris\.html$ favourites.php [L]
RewriteRule ^contact\.html$ contact.php [L]
RewriteRule ^advanced_search\.html$ advanced_search.php [L]
RewriteRule ^pre-submit\.html$ pre-submit.php [L]
RewriteRule ^([0-9]+)-([^\/]*)?/content\.html$ content.php?id=$1 [L]

RewriteRule ^([0-9]+)-([^\/]*)/details\.html$ details.php?id=$1 [nc,qsa]

RewriteRule ^([0-9]+)-([^\/]*)/([^\/]*)/listings.html$ listings.php?&id=1&category=$2&page=$1 [nc,qsa]


La bleu c'est celle des annonces et la rouge celle des catégories.

Toujours le même problème, toutes les annonces s'affichent dans chacune des catégories.. J'ai changé les drapeaux L NC QSA QSA,NC, tout marche sauf END.

Je prend toute bonne idées :wink:

Merci a tous !

Re: Probleme URL rewriting dans site d'annonce

Posté : 14 avr. 2011, 14:00
par moogli
alors coté drapeaux tu peux garder NC et QSA
NC : indique de ne pas tenir compte de la casse (donc INdeX et index c'est pareil)
QSA : permet d'ajouter la chaine de requete. en gros si tu fait index.html?action=afficher&page=412 sansle flag QSA avec un rewrite comme le tiens d'index.html vers index.php, le serveur va virer tous ce qu'il y après le ? avec QSA ça le garde, ça peut être pratique ;)

La doc du mode rewrite => http://httpd.apache.org/docs/2.2/rewrite/
plus spécifiquement Les drapeaux

après quand je vois la plus part de tes règles je te conseil de lire Quand ne pas utiliser le mode rewrite (en) ou alors tu fait une simple règle générique pour toutes les pages ou te ne fait que changer l'extension ;) (du genre (.+*)\.html /$1.php a vérifier j'ai pas testé je suis pas sur que ça fonctionne, faudrait p'tet ajouter une condition ;) ) => 8 régles de gagnées, qui plus est, ton système devient évolutif sans devoir ajouter une règle dans le htaccess :)

je regarde plus en détails dès que jepeux dans l'après midi.

@+

Re: Probleme URL rewriting dans site d'annonce

Posté : 14 avr. 2011, 16:12
par Gregory 31
AH ca serai super si je pouvais ajouter une règle commune a toute !

En fait dans le script j'ai le mode Mod Rewriting à activé, et quand je l'active, toutes les urls passe du type : .fr/details.php?id=1 pour les annonces en .fr/1-Le-titre-de-l'annonce/details.html et idem pour les catégorie .fr/listings.php?category=93 en .fr/93-Le titre-de-la-categorie/1/listings.html

J'ai lu le document Quand ne pas utiliser le mode rewrite (en) (merci Google Traduction :-) et effectivement il faut l'utiliser vraiment que quand c'est necessaire

Je vais essayer de mettre ta regle générique du type (.+*)\.html /$1.php (je sais pas ce que sa va faire mais je vais tester). Je savais que le fichier htaccess servait bien a quelques choses mais en ce qu'il en ai des url rewriting c'est du boulot. J'ai eu un petit souci de nom de domaine, je re-heberge le site ailleurs pour continuer de tester tout ca et je te tiens au jus :)

Re: Probleme URL rewriting dans site d'annonce

Posté : 15 avr. 2011, 09:58
par Gregory 31
Bon, ca marche..

J'ai télécharger le script avec un autre fichiers htaccess je les tester et tout marche : http://s204533539.onlinehome.fr/index.html

Le fichier htaccess etait comme ca dans le nouveau script :


## Uncomment this if FollowSymLinks is not already enabled on your server
Options +FollowSymLinks

## Use mod rewrite
## Comment the line below if RewriteEngine is already enabled on your server
RewriteEngine On

## Uncomment the line below and change the path if your script is installed
## in a different path than the root folder of your domain

RewriteBase /


RewriteRule ^index.html index.php [nc]
RewriteRule ^recent_ads.html recent_ads.php [nc]
RewriteRule ^register.html register.php [nc]
RewriteRule ^pre-register.html pre-register.php [nc]
RewriteRule ^login.html login.php [nc]
RewriteRule ^logout.html logout.php [nc]
RewriteRule ^favourites.html favourites.php [nc]
RewriteRule ^contact.html contact.php [nc]
RewriteRule ^advanced_search.html advanced_search.php [nc]
RewriteRule ^listings.html listings.php [nc]
RewriteRule ^pre-submit.html pre-submit.php [nc]
RewriteRule ^([0-9]+)-([^\/]+)?/content.html$ content.php?id=$1 [nc,qsa]
RewriteRule ^([0-9]+)-([^\/]+)/index.html$ index.php?category=$1 [nc,qsa]
RewriteRule ^([0-9]+)-([^\/]+)/details.html$ details.php?id=$1 [nc,qsa]
RewriteRule ^([^\/]+)/([^\/]+)/([^\/]+)/recent_ads.html$ recent_ads.php?page=$1&order=$2&order_way=$3 [nc,qsa]
RewriteRule ^([0-9]+)-([^\/]+)/user_listings.html$ user_listings.php?id=$1 [nc,qsa]
RewriteRule ^([0-9]+)-([^\/]+)/([^\/]+)/([^\/]+)/([^\/]+)/user_listings.html$ user_listings.php?id=$1&page=$3&order=$4&order_way=$5 [nc,qsa]
RewriteRule ^([^\/]+)/([^\/]+)/([^\/]+)/favourites.html$ favourites.php?page=$1&order=$2&order_way=$3 [nc,qsa]
RewriteRule ^([0-9]+)-([^\/]+)/store.html$ store.php?id=$1 [nc,qsa]
RewriteRule ^([0-9]+)-([^\/]+)/([^\/]+)/([^\/]+)/([^\/]+)/store.html$ store.php?id=$1&page=$3&order=$4&order_way=$5 [nc,qsa]

RewriteCond %{REQUEST_URI} ^(.*)(/listings.html)(.*)$ [NC]
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule (.*) ./listings.php?$1


En attendant je te remercie pour ton implication ! Au moins ce post servira un jour a quelqu'un qui aura le meme souci.
++ :D