Vous êtes ici Forums > Dépôt de sources > Aide sur l'url rewriting

SUJET: Aide sur l'url rewriting
  Le 26 Mai 2010 à 09:51:41
Bonjour,

Je cherche en vint à obtenir des url du style : -http://mon-site.com/categorie/sous-categorie/ma-page.php ou "categorie" et "sous-categorie" sont des dossiers virtuels.

Mon rewrite actuel et fonctionnel:
Code:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

#Rewrite des categories
RewriteRule ^(.+)$ categorie.php?categorie=$1 [L]



Je sèche sur la syntaxe des sous catégories sachant que le lien est de la forme :
Code:

<a href="'.$titre_categorie.'/'.$titre_sous_categorie.'">

J'ai testé pas mal de variante dont :
Code:

RewriteRule ^(.+)/(.+)$ sous-categorie.php?categorie=$1&sous_categorie=$2 [L]
RewriteRule ^(.*)/(.+)$ sous-categorie.php?categorie=$1&sous_categorie=$2 [L]
RewriteRule ^([a-z]*)/(.+)$ sous-categorie.php?categorie=$1&sous_categorie=$2 [L]
RewriteRule ^$1/(.+)$ sous-categorie.php?sous_categorie=$2 [L]


...mais sans succès no et un petit coup de pouce serait bienvenue.

J'ai oublié de préciser que je ne souhaite pas utiliser d'identifiants pour les cat. et sous cat. et qu'un champs "rewrite" contient le nom des cat. et sous cat. sous la forme rewrité...

Merci
c00lman
site web du membre profil du membre
Messages: 20

Dernière réponse le
27-05-2010 à 01:19:49
par KOogar
 

  Le 26 Mai 2010 à 10:28:42
pour la réécriture virtuelle, dans le head de ton site ajoute cette ligne
<link rel="canonical" href="http://www.ton site.org/">

ton rewrite m'a l'air correct, indique bien le nom des repertoires si tu peux, ou soit tu places des masques

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^rep1/rep2/(.+)/(.+)$ categorie.php?categorie=$1 [L]
KOogar
Modérateur
site web du membre profil du membre
Messages: 315

 

  Le 26 Mai 2010 à 10:42:09
Mon rewrite est correcte uniquement sur les catégories et je ne parviens pas à trouver la syntaxe du rewrite pour les sous catégories (404, erreur,page blanche,etc..) tout en sachant que les catégories sont des dossiers virtuelles tout comme les sous cat. à venir.
c00lman
site web du membre profil du membre
Messages: 20

 

  Le 26 Mai 2010 à 10:57:47
tu as essayé en ajoutant l'url canonique ?

pour
http://mon-site.com/categorie/sous-categorie/ma-page.php

ca donne:
RewriteRule ^(.*)/(.*)/ma-page\.php$ sous-categorie.php?categorie=$1&sous_categorie=$2 [L]
KOogar
Modérateur
site web du membre profil du membre
Messages: 315

 

  Le 26 Mai 2010 à 12:00:43
Pour le moment, j'essaye d'afficher les sous catégories avant de chercher à afficher les pages wink .

Dans mon htaccess j'ai :
Code:
RewriteEngine on
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

#Rewrite des categories
RewriteRule ^(.+)$ categorie.php?categorie=$1 [L]

A la suite, j'ai testé ceci une par une :
Code:
#Rewrite des sous-catégories

RewriteRule ^(.+)/(.+)$ sous-categorie.php?categorie=$1&sous_categorie=$2 [L]
RewriteRule ^(.*)/(.+)$ sous-categorie.php?categorie=$1&sous_categorie=$2 [L]
RewriteRule ^(.*)/(.*)$ sous-categorie.php?categorie=$1&sous_categorie=$2 [L]
RewriteRule ^(.+)/(.*)$ sous-categorie.php?categorie=$1&sous_categorie=$2 [L]

RewriteRule ^(.*)/(.+)$ sous-categorie.php?sous_categorie=$2 [L]
RewriteRule ^(.+)/(.+)$ sous-categorie.php?sous_categorie=$2 [L]
RewriteRule ^(.+)/(.*)$ sous-categorie.php?sous_categorie=$2 [L]
RewriteRule ^(.*)/(.*)$ sous-categorie.php?sous_categorie=$2 [L]

RewriteRule $1/^(.+)$ sous-categorie.php?sous_categorie=$2 [L]
RewriteRule ^$1/(.+)$ sous-categorie.php?sous_categorie=$2 [L]
RewriteRule ^$1/(.*)$ sous-categorie.php?sous_categorie=$2 [L]

RewriteRule ^(.+)$ sous-categorie.php?sous_categorie=$1 [L]

Dans la plupart des cas, j'obtiens la bonne url dans la barre d'adresse mais le contenu affiché est celui de la page d'accueil (et encore, il me manque une partie du code..)

J'ai mis l'url canonique en place mais je ne vois pas l'intérêt de celle-ci dans ma galère à l'url rewriting ??

Je crois je vais lâcher l'affaire parce que là ça devient très chiant no
c00lman
site web du membre profil du membre
Messages: 20

 

  Le 26 Mai 2010 à 17:35:23
tu devrais avoir ca comme règle :
Code:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#Rewrite des sous-categories
RewriteRule ^(.+)/(.+)$ sous-categorie.php?categorie=$1&sous_categorie=$2 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#Rewrite des categories
RewriteRule ^(.+)$ categorie.php?categorie=$1 [L]


ca risque de ne pas marcher si tes catégories contiennent un / car apache ne va pas savoir ou couper
forty
Modérateur
site web du membre profil du membre
Messages: 187

 

  Le 27 Mai 2010 à 01:19:49
forty a écrit:
ca risque de ne pas marcher si tes catégories contiennent un / car apache ne va pas savoir ou couper


oui c'est le probleme, et il se situe au niveau du fichier car il n'existe pas et apache lui va le chercher

avec un fichier ca fonctionne

RewriteRule ^([a-z]*)/(.+)/nom_fichier$ sous-categorie.php?categorie=$1&sous_categorie=$2 [L]

en ajoutant l'url canonique ca évite certain déboire en début de chaine, je pense a Online qui n'a pas les signes (^$)

maintenant pour des urls genre (rep1/rep2/2010/01/10/) donc sans fichier, il faut passer par le moteur php

j'en profite pour signaler cet exellent article sur comment améliorer un .htaccess pour wordpress
http://www.paperblog.fr/2511536/wordpress-configurer-le-fichier-htaccess/
KOogar
Modérateur
site web du membre profil du membre
Messages: 315

 
 
Librairie PHP

Connexion

 
 

Explications

 
 

Ressources

 
 
 
Maîtrisez PHP4 Livre PHP

Maîtrisez PHP4
 

Flux RSS

 
 
 
 
      TWITTER !!
Suivez phpsources sur Twitter
 
annuaire phpsources référencer vos sites

Répertoire de sites francophones pour ajouter vos sites.
Référencer vos sites

 
Partenaire officiel
Partenaire officiel
 
  Statistiques...
Stats du réseau:
visiteurs en ligne : 42
basées sur les utilisateurs actifs des 5 dernières minutes
membres : 10719
 
Stats du site phpsources:
Dernière mise à jour des stats
aujourd'hui à 11:53:28

codes sources : 568
scripts : 806
articles - actualités : 101
tutoriel : 34
sites sur le langage PHP : 165
commentaires : 1 651
total des scripts téléchargés: 534 781
total hits codes sources: 4 896 494