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 31/05/2011, 12h03   #1
Membre du Club
 
Inscription : mars 2008
Messages : 281
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 281
Points : 47
Points : 47
Par défaut Réécriture URL de mes liens dynamiques

salut j'ai réaliser un site de mon agence http://www.saaa.ma il est dynamique, les liens sont long et difficile a les comprendre, c'est pour ça j'ai entendu parlé du UrlRewriting

j'ai cherché des tuto intéressent sur le net, mais probleme que j'arrive pas a l'adapter sur mes propres liens

par exemple sur mon site SAAA on clique sur Actualites

on aura lien
Citation:
index.php?choix=actualites&choix-menu=menuhG&choix-logo=logo1&categorie=actualiteSaaa&tab=2&lang=fr
comment le rendre a se genre
Citation:
index.php/actualites_saaa_francais
et puis quand je clique sur flag anglais lien va etre
Citation:
index.php/actualites_saaa_anglais
etc svp j'ai besoin d'aide ?
sooprano est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 22h24   #2
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 283
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 283
Points : 8 569
Points : 8 569
Tu en es arrivé où dans tes recherches ? Tu es arrivé à quel résultat (quel fichier .htaccess) ?

Ce qui est gênant avec la cible que tu veux c'et qu'on n'y retrouve pas tous les paramètres d'URL. Par exemple, il manque les paramètres choix-menu, choix-logo et tab.

A ce propos, j'aime bien le logo3 Ce n'est jamais une bonne idée de mettre en paramètre d'URL des éléments de l'IHM. Un logo, ça va mais imaginons que ce soit un JavaScript et là, on peut faire de belles bêtises avec ton site
__________________

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 01/06/2011, 10h41   #3
Membre du Club
 
Inscription : mars 2008
Messages : 281
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 281
Points : 47
Points : 47
Citation:
Envoyé par _Mac_ Voir le message
Tu en es arrivé où dans tes recherches ? Tu es arrivé à quel résultat (quel fichier .htaccess) ?

Ce qui est gênant avec la cible que tu veux c'et qu'on n'y retrouve pas tous les paramètres d'URL. Par exemple, il manque les paramètres choix-menu, choix-logo et tab.

A ce propos, j'aime bien le logo3 Ce n'est jamais une bonne idée de mettre en paramètre d'URL des éléments de l'IHM. Un logo, ça va mais imaginons que ce soit un JavaScript et là, on peut faire de belles bêtises avec ton site
ok voila mon fichier .htaccess

Code :
1
2
3
4
5
Options +FollowSymlinks
RewriteEngine on


RewriteRule ^[a-z]+-([a-z]+)-([a-z]+)\.html$  index.php?choix=actualites&choix-menu=menuhG&choix-logo=logo1&categorie=actualiteSaaa&tab=2&lang=fr  [L]
ça marche seulement quand je clique sur menu actualites

comment faire pour reecriture les autres liens ?
sooprano est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 21h58   #4
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 283
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 283
Points : 8 569
Points : 8 569
Citation:
Envoyé par sooprano Voir le message
ça marche seulement quand je clique sur menu actualites
C'est logique : tu as codé le paramètre choix=actualites dans la réécriture. Pour y arriver, il faut que tu exploites les groupes entre parenthèses. A priori, vu l'exemple que tu donnes dans ton premier message, je dirais qu'il manque un premier groupe entre parenthèses pour encadrer le premier [a-z]+ qui doit logiquement contenir le mot "actualites". Tu l'utilises alors dans la réécriture avec la notation $1 :
Code :
RewriteRule ^([a-z]+)-([a-z]+)-([a-z]+)\.html$  index.php?choix=$1&choix-menu=menuhG&choix-logo=logo1&categorie=actualiteSaaa&tab=2&lang=fr  [L]
Tu peux faire la même chose avec les 2 autres groupes entre parenthèses avec $2 et $3 mais le problème c'est que je ne vois pas comment passer de actualites-saaa-francais aux paramètres categorie=actualiteSaaa et lang=fr. Ca marcherait si tu mettais actualites-actualiteSaaa-fr car dans ce cas $2 = actualiteSaaa et $3 = lang :
Code :
RewriteRule ^([a-z]+)-([a-z]+)-([a-z]+)\.html$  index.php?choix=$1&choix-menu=menuhG&choix-logo=logo1&categorie=$2&tab=2&lang=$3  [L]
__________________

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 08/06/2011, 11h36   #5
Membre du Club
 
Inscription : mars 2008
Messages : 281
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 281
Points : 47
Points : 47
Citation:
Envoyé par _Mac_ Voir le message
C'est logique : tu as codé le paramètre choix=actualites dans la réécriture. Pour y arriver, il faut que tu exploites les groupes entre parenthèses. A priori, vu l'exemple que tu donnes dans ton premier message, je dirais qu'il manque un premier groupe entre parenthèses pour encadrer le premier [a-z]+ qui doit logiquement contenir le mot "actualites". Tu l'utilises alors dans la réécriture avec la notation $1 :
Code :
RewriteRule ^([a-z]+)-([a-z]+)-([a-z]+)\.html$  index.php?choix=$1&choix-menu=menuhG&choix-logo=logo1&categorie=actualiteSaaa&tab=2&lang=fr  [L]
Tu peux faire la même chose avec les 2 autres groupes entre parenthèses avec $2 et $3 mais le problème c'est que je ne vois pas comment passer de actualites-saaa-francais aux paramètres categorie=actualiteSaaa et lang=fr. Ca marcherait si tu mettais actualites-actualiteSaaa-fr car dans ce cas $2 = actualiteSaaa et $3 = lang :
Code :
RewriteRule ^([a-z]+)-([a-z]+)-([a-z]+)\.html$  index.php?choix=$1&choix-menu=menuhG&choix-logo=logo1&categorie=$2&tab=2&lang=$3  [L]
ah ok , merci pour l'explication j'ai tester
Citation:
actualites-saaa-francais.html
ça me donne une page vide ,
ainsi d'apres ce que tu m'as expliquer Mon fichier htaccess va etre a cette forme si je suis pas trompé
Code :
1
2
3
4
Options +FollowSymlinks
RewriteEngine on

RewriteRule ^([a-z]+)_([a-z]+)_([a-z]+)_([a-z]+)_([0-9]{2}+)_([a-z]{2})\.html$  index.php?choix=$1&choix-menu=$2&choix-logo=$3&categorie=$4&tab=$5&lang=$6  [L]
j'ai donner a mon menu actualites href=
Citation:
actualites_menuG_logo1_actualiteSaaa_2_fr.html
le resultat c'est que ça marche pas URL NOT FOUND comment faire pour realiser une Reecriture correcte
sooprano est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2011, 19h04   #6
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 283
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 283
Points : 8 569
Points : 8 569
Ca ne marche pas parce que ton filtre ne correspond pas à ton URL. Si on découpe par rapport au caractère _, tu essaies de faire correspondre les éléments suivants :
Code :
1
2
3
4
5
6
([a-z]+)      actualites
([a-z]+)      menuG
([a-z]+)      logo1
([a-z]+)      actualiteSaaa
([0-9]{2}+)   2
([a-z]{2})    fr
Le filtre 1 passe : que des lettres en minuscule
Le filtre 2 échoue : il ne contient que des lettres en minuscule alors que "menuG" contient une majuscule
Le filtre 3 échoue : il ne contient que des lettres en minuscule alors que "logo1" contient un chiffre
Le filtre 4 échoue pour la même raison que le filtre 2
Le filtre 5 échoue : il attend au moins 2 chiffres mais tu n'en présentes qu'un
Le filtre 6 passe
__________________

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
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h38.


 
 
 
 
Partenaires

Hébergement Web