Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Serveurs (Apache, IIS,...) > Apache
Apache Forum d'entraide Apache. Avant de poster : Cours Apache, FAQ Apache
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/11/2010, 16h45   #1
Invité de passage
 
Inscription : octobre 2010
Messages : 11
Détails du profil
Informations forums :
Inscription : octobre 2010
Messages : 11
Points : 2
Points : 2
Par défaut URL rewriting et tirets

Bonjour,

J'essaie en vain de réécrire les urls de mon site du style:

/view.php?section=SECTION&categorie=CATEGORIE&id=ID&titre=TITRE-AVEC-TIRET
en
/SECTION-CATEGORIE-ID-TITRE-AVEC-TIRET.html

J'ai des pages différentes du genre sans CATEGORIE : /view.php?section=SECTION&id=ID&titre=TITRE-AVEC-TIRET

Voici le .htaccess:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
# Page avec Section :
RewriteRule ^([a-zA-Z0-9\-]+)\.html$   /view.php?section=$1 [L]

# Page avec Section et Catégorie :
RewriteRule ^([a-zA-Z0-9\-]+)-([a-zA-Z0-9\-]+)\.html$   /view.php?section=$1&categorie=$2 [L]

# Page avec Section Titre et ID mais sans Catégorie :
RewriteRule ^([a-zA-Z0-9\-]+)-([0-9]+)-([a-zA-Z0-9\-]+)\.html$   /view.php?section=$1$id=$2&titre=$3 [L]

# Page avec Section Catégorie Titre et ID :
RewriteRule ^([a-zA-Z0-9\-]+)-([a-zA-Z0-9\-]+)-([0-9]+)-([a-zA-Z0-9\-]+)\.html$   /view.php?section=$1&categorie=$2&id=$3&titre=$4 [L]
Mon problème est que les variables ne sont pas récupérés dans ma page mais lorsque je remplace :
/SECTION-CATEGORIE-ID-TITRE-AVEC-TIRET.html
en
/SECTION_CATEGORIE_ID_TITRE-AVEC-TIRET.html

Cela fonctionne... hors je ne veux pas d'underscore.

Que dois-je modifié? merci d'avance.
dusk666 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2010, 21h33   #2
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 259
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 259
Points : 8 542
Points : 8 542
C'est évident : l'expression régulière ([a-zA-Z0-9\-]+) est équivalente à ([a-zA-Z0-9\-]+)-([a-zA-Z0-9\-]+) parce qu'elle contient le séparateur, donc tes deux dernières règles sont strictement équivalentes. En gros, il faut spécialiser un peu plus tes filtres si c'est possible ou alors utiliser un autre séparateur qui ne figurera pas dans les [...]+.
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2010, 22h03   #3
Invité de passage
 
Inscription : octobre 2010
Messages : 11
Détails du profil
Informations forums :
Inscription : octobre 2010
Messages : 11
Points : 2
Points : 2
Merci de ta réponse,

Je ne vois pas trop ce que je pourrais ajouter à mes filtres. Je débute depuis ce matin dans l'url rewriting et les expressions régulières donc je ne maîtrise pas tout encore...
Je voulais absolument mettre des tirets comme la plupart des sites.
dusk666 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2010, 22h10   #4
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 259
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 259
Points : 8 542
Points : 8 542
Si SECTION et/ou CATEGORIE ne contiennent pas de -, tu peux les retirer de tes []. Si ce n'est pas possible, beaucoup de sites utilisent / comme séparateur (à la place de -). D'autres, mais c'est peut-être plus rare, utilisent une séquence plus évoluée. Par exemple, SECTION et CATEGORIE sont séparés par -c- par exemple : SECTION-c-CATEGORIE-ID-la-suite.
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 18/11/2010, 22h24   #5
Invité de passage
 
Inscription : octobre 2010
Messages : 11
Détails du profil
Informations forums :
Inscription : octobre 2010
Messages : 11
Points : 2
Points : 2
Ah ok zut alors, SECTION et CATEGORIE ont des tirets parfois.
J'ai essayé avec / mais j'ai vraiment du mal à le mettre en place car le serveur l'interprète comme un répertoire et du coup mon css et mes fichiers js ne sont pas appliqué. Bizarre qu'il n'y ai pas moyen de mettre ces tirets!
dusk666 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2010, 22h45   #6
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 259
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 259
Points : 8 542
Points : 8 542
Citation:
Envoyé par dusk666 Voir le message
car le serveur l'interprète comme un répertoire
Non, c'est faux, c'est le navigateur qui a cette interprétation. Ce problème est ultra-classique dans l'URL rewriting. La solution est très simple : indiquer toutes les URL de tes ressources (images, CSS, etc.) en tant qu'URL relatives à la racine du site, en clair les faire commencer par un / : src="/images/..." au lieu de src="images/..."
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2010, 23h03   #7
Invité de passage
 
Inscription : octobre 2010
Messages : 11
Détails du profil
Informations forums :
Inscription : octobre 2010
Messages : 11
Points : 2
Points : 2
Ok dac merci, je vais essayé ceci.
Je me posais une autre question aussi, si je décide de mettre un séparateur du type -section- -categorie- etc, cela va m'allonger l'url. Est ce qu'au niveau référencement cela ne va pas nuire?
dusk666 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2010, 23h11   #8
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 259
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 259
Points : 8 542
Points : 8 542
aucune idée
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2010, 23h18   #9
Invité de passage
 
Inscription : octobre 2010
Messages : 11
Détails du profil
Informations forums :
Inscription : octobre 2010
Messages : 11
Points : 2
Points : 2
Ok pas grave j'ai adopté la solution Slash qui fonctionne très bien en mettant la balise meta : <base href="http://www.monsite.com/" >

Merci beaucoup pour ton aide.
dusk666 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h54.


 
 
 
 
Partenaires

Hébergement Web