Formation par Olivier Duffez

Formation au référencement par Olivier Duffez, créateur de WebRankInfo !
Une formule efficace alliant théorie et pratique, avec une haute disponibilité des intervenants
Cette formule a déjà convaincu plusieurs centaines d'entreprises, pourquoi pas vous ?
Réservez vite votre place en ligne (convention possible pour imputer sur le budget formation)

Formation référencement Marseille

Problème avec ma RewriteRule

Aller à la page 1, 2  Suivante
Poster un nouveau sujet Imprimer cette discussion    Forum -> URL Rewriting et .htaccess   Les dernières discussions de ce forum sont disponibles au format RSS
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 
van___fanel
Nouveau WRInaute

Inscrit le: 19 Mar 2007
Messages: 9

URL permanente de ce messagePosté le : Mar Juin 03, 2008 19:21    Sujet du message: Problème avec ma RewriteRule

Bonjour,

je tente de me mettre à l'url rewriting, mais je rencontre un problème. Je travaille pour le moment en local.

Après lecture du tutorial WebRankInfo, voilà ma rewriteRule :

Code:
RewriteRule ^()([a-z]+)\.html$ index.php?page_id=$1&page_title=$2 [L]


Mes URL sont de la forme
Code:
index.php?page_id=1&page_title=Accueil
et je souhaiterais les transformer en Accueil.html, c'est à dire seulement avec la variable $page_title.

Hélas, voilà ce que j'obtiens lorsque je tente d'afficher Accueil.html :

Citation:
Not Found

The requested URL Accueil.html was not found on this server.


Où est l'erreur ?

Merci d'avance
 
van___fanel
Vap
WRInaute accro
WRInaute accro

Inscrit le: 17 Juin 2007
Messages: 1032
Localisation: Bouches-du-Rhône

URL permanente de ce messagePosté le : Mar Juin 03, 2008 20:22    Sujet du message: Problème avec ma RewriteRule

Deux questions:

1. Comment on trouve l'ID a partir de l'adresse en html? Comment on sait que accueil.html est l'ID 1?

2. Dans ta règle tu a
Code:
()
. Pourquoi?

Pour savopri ce qui se passe, remplace le [L] par [R=301]. Tu sauras en quoi est réécrit accueil.html, et donc tu trouvera pourquoi ça ne marche pas.
 
Vap Visiter le site web du posteur
van___fanel
Nouveau WRInaute

Inscrit le: 19 Mar 2007
Messages: 9

URL permanente de ce messagePosté le : Mer Juin 04, 2008 17:48    Sujet du message: Problème avec ma RewriteRule

1. Bien normalement, il n'y pas besoin d'afficher l'id de la page dans l'url "rewritée". Car si j'ai bien compris, l'url rewriting, c'est juste un système qui applique une url statique par dessus une url dynamique, mais le navigateur sait qu'il s'agit de index.php?page_id=1&page_title=Accueil, lorsque il affiche Accueil.html. Ou alors je n'ai pas tout compris.

2. la première parenthèse vide est justement pour l'id de la page, que je ne souhaite pas afficher dans l'url "rewritée". Cette parenthèse est vide pour que le $1 de la RewriteRule n'affiche rien pour l'id de la page.

J'ai changée le [L] par [R=301], et il ne s'est rien passé de différent. Aucun message d'erreur.
 
van___fanel
Vap
WRInaute accro
WRInaute accro

Inscrit le: 17 Juin 2007
Messages: 1032
Localisation: Bouches-du-Rhône

URL permanente de ce messagePosté le : Mer Juin 04, 2008 21:38    Sujet du message: Problème avec ma RewriteRule

l'URL rewriting sert a transformer des urls, c'est tout, et rien de plus.

avec un R=301, quelle est l'adresse qui s'affiche dans la barre d'adresse de ton navigateur?

Mais ta règles est mal formée avec ta parenthese vide. Si l'id n'a pas besoin d'etre renseigné il faut que tu mette:

Code:

RewriteRule ^([a-z]+)\.html$ index.php?page_title=$1 [L]
 
Vap Visiter le site web du posteur
van___fanel
Nouveau WRInaute

Inscrit le: 19 Mar 2007
Messages: 9

URL permanente de ce messagePosté le : Lun Juin 09, 2008 20:07    Sujet du message: Problème avec ma RewriteRule

Sauf que j'ai tout de même besoin de la variable $_GET['page_id'], puisque c'est grâce à elle que je vais chercher le contenu de mes pages dynamiques. Donc mon URL ne peut pas ressembler à index.php?page_title=Accueil, mais doit bien être de la forme index.php?page_id=1&page_title=Accueil

Pour le moment, avec un R=301, si je demande d'afficher http://127.0.0.1/Projects/[...]/site/Accueil.html, rien ne se passe.

Si je demande d'afficher http://127.0.0.1/Projects/[...]/site/accueil.html (nom de page sans majuscule initiales), il transforme l'url en
Citation:
http://127.0.0.1/D:/Program%20Files/EasyPHP%202.0b1/www/Projects/[...]/site/index.php?page_id=accueil&page_title=
 
van___fanel
Vap
WRInaute accro
WRInaute accro

Inscrit le: 17 Juin 2007
Messages: 1032
Localisation: Bouches-du-Rhône

URL permanente de ce messagePosté le : Mer Juin 11, 2008 9:50    Sujet du message: Problème avec ma RewriteRule

Il faut donc que tu aie une correspondance entre le nom de la page et son id. Ta première règle ne renseignait même pas l'id soit dit en passant.

Soit tu fais une règle par page, soit tu as cette correspondance dans une base de donnée, et tu dois faire la correspondance en PHP. Cherche sur le forum, ça a été discuté il y a quelques jours.

Une règle par page donne quelque chose comme suit:

Code:

RewriteRule accueil\.html index.php?page_id=1&page_title=Accueil
RewriteRule page1\.html index.php?page_id=2&page_title=Titre1


etc. Evidemment ce n'est jouable que si le nombre de pages reste faible.
 
Vap Visiter le site web du posteur
KOogar
WRInaute accro
WRInaute accro

Inscrit le: 16 Nov 2004
Messages: 2909
Localisation: Bangalore +3h30

URL permanente de ce messagePosté le : Mer Juin 11, 2008 11:04    Sujet du message: Problème avec ma RewriteRule

je suis pas d'accord avec Vap.. sry

C'est trés simple a faire ce que tu veux.. mais ne me demande pas pourquoi, il faut ajouter le NS à la fin.

Code:
RewriteRule ^(.*)\.html  /page.php?page_id=$2&page_title=$1 [NS,L]
 
KOogar Visiter le site web du posteur
Vap
WRInaute accro
WRInaute accro

Inscrit le: 17 Juin 2007
Messages: 1032
Localisation: Bouches-du-Rhône

URL permanente de ce messagePosté le : Mer Juin 11, 2008 11:20    Sujet du message: Problème avec ma RewriteRule

KOogar a écrit:
je suis pas d'accord avec Vap.. sry

C'est trés simple a faire ce que tu veux.. mais ne me demande pas pourquoi, il faut ajouter le NS à la fin.

Code:
RewriteRule ^(.*)\.html  /page.php?page_id=$2&page_title=$1 [NS,L]


Pas besoin d'être désolé. NS sert a éviter certaines erreurs. Mais je ne vois pas quelle sera la valeur de page_id avec ta règle. Peux tu m'expliquer?

Edit: j'ai testé, et c'est bien ce que je pensais, page_id n'est pas renseigné.
 
Vap Visiter le site web du posteur
KOogar
WRInaute accro
WRInaute accro

Inscrit le: 16 Nov 2004
Messages: 2909
Localisation: Bangalore +3h30

URL permanente de ce messagePosté le : Mer Juin 11, 2008 14:41    Sujet du message: Problème avec ma RewriteRule

je pense que c'est un probleme au niveua de la boucle globale, c'st pk sans le NS cela renvois sur la page php

ca etant je te laisse apprecier :
--http://www.urlrewriting.fr/testpriv/met-ce-que-tu-veux-ici.html
 
KOogar Visiter le site web du posteur
Vap
WRInaute accro
WRInaute accro

Inscrit le: 17 Juin 2007
Messages: 1032
Localisation: Bouches-du-Rhône

URL permanente de ce messagePosté le : Mer Juin 11, 2008 21:19    Sujet du message: Problème avec ma RewriteRule

KOogar a écrit:
je pense que c'est un probleme au niveua de la boucle globale, c'st pk sans le NS cela renvois sur la page php

ca etant je te laisse apprecier :
--http://www.urlrewriting.fr/testpriv/met-ce-que-tu-veux-ici.html


Ca fait quoi ton test?

Le test que j'ai fait est de rentrer la règle que tu as donné et d'imprimer page_id et page_title. Seul page_title ($1) est imprimé, et page_id n'est pas défini.
 
Vap Visiter le site web du posteur
KOogar
WRInaute accro
WRInaute accro

Inscrit le: 16 Nov 2004
Messages: 2909
Localisation: Bangalore +3h30

URL permanente de ce messagePosté le : Jeu Juin 12, 2008 2:29    Sujet du message: Problème avec ma RewriteRule

tu me....grr.. je t'ai envoyé un mot par MP pour arrter ce jeu avec toi..
 
KOogar Visiter le site web du posteur
Vap
WRInaute accro
WRInaute accro

Inscrit le: 17 Juin 2007
Messages: 1032
Localisation: Bouches-du-Rhône

URL permanente de ce messagePosté le : Jeu Juin 12, 2008 14:45    Sujet du message: Problème avec ma RewriteRule

Je ne joue pas, j'essaie d'aider. Je pense avoir aidé suffisamment de gens avec leurs problèmes de réécriture pour avoir le droit qu'on ne pense pas que je joue. Il suffit de lire ce forum pour le voir.

Bref, aucune des règles proposées ne permet de donner une valeur a page_id. C'est simple à vérifier, et j'ai proposé une solution.

Pas besoin de s'enerver pour ça ni de me dire que je ne dis que des idioties en MP.
 
Vap Visiter le site web du posteur
Marie-Aude
WRInaute accro
WRInaute accro

Inscrit le: 05 Juin 2006
Messages: 3396
Localisation: More than a plastic girl

URL permanente de ce messagePosté le : Jeu Juin 12, 2008 15:27    Sujet du message: Problème avec ma RewriteRule

Pour utiliser exactement le même type de règle, tu peux récupérer page_id avec $_GET[page_id]

La règle que Koogar t'as donnée est celle que j'utilise, et qui fonctionne.
 
Marie-Aude Visiter le site web du posteur
Vap
WRInaute accro
WRInaute accro

Inscrit le: 17 Juin 2007
Messages: 1032
Localisation: Bouches-du-Rhône

URL permanente de ce messagePosté le : Jeu Juin 12, 2008 16:14    Sujet du message: Problème avec ma RewriteRule

Le diable est dans les détails comme disent les américains.

Voici un .htaccess:
Code:

AddType x-mapp-php5 .php

Options +FollowSymLinks

RewriteEngine On

RewriteRule ^(.*)\.html  /page.php?page_id=$2&page_title=$1 [NS,L]


Les deux premières lignes sont pour un hébergement 1and1.

Voici le code de page.php:

Code:

<?php
echo 'page_id='.$_GET['page_id'].' page_title='.$_GET['page_title'];
?>


Voici une requête (je peux donner par MP le NDD si quelqu'un veut vérifier de visu tout ce que je dis):

Code:

http://xxxx.com/toto.html


Voici ce que ça imprime:

Code:

page_id= page_title=toto


page_id n'est pas défini. C'est ce que je dis depuis le début. Et page_id n'est pas défini car $2 n'est pas défini dans la règle car il n'y a qu'une seule paire de parenthèses dans l'expression régulière.

Vous pouvez tourner ça dans le sens que vous voulez, c'est comme ça. Et n'importe qui peut refaire ce test.

Je ne sais toujours pas ce que le test de Koogar fait par contre. Ce serait bien de le savoir.
 
Vap Visiter le site web du posteur
e-kiwi
Modérateur
Modérateur

Inscrit le: 23 Déc 2003
Messages: 12363
Localisation: Toulouse

URL permanente de ce messagePosté le : Jeu Juin 12, 2008 16:21    Sujet du message: Problème avec ma RewriteRule

bah, qu'est ce que vous dites ?

si il veut recuperer 2 valeurs, c'est à dire page_id et page_title, il doit faire passer ces 2 valeurs dans l'url, à moins de faire la correspondante en php. donc dans ce cas, il devra faire une url du type :

1,accueil.html ou 1-accueil.html (ou accueil-1, c'est lui qui voit)
et dans ça regle de rewrite quelquechose du genre (0-9+),(.+).html vers /page.php?page_id=$1&page_title=$2 (ou inverse)

accueil.html, quelquesoit son rewrite, ne va pas inventer tout seul que l id d'accueil est 1, à moins d'aller le chercher dans la base de données ou autre.
 
e-kiwi Visiter le site web du posteur
 
Montrer les messages depuis:   
Revenir en haut    Forum -> URL Rewriting et .htaccess Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 2 - Aller à la page 1, 2  Suivante
Connexion
Nom d'utilisateur:    Mot de passe:      Se connecter automatiquement à chaque visite    

A lire dans l'actualité sur WRI :

En savoir plus : , .

CLIQUEZ ICI pour vous inscrire à WebRankInfo (forum, annuaire, outils...)

Connexion

© 2001-2005 phpBB Group, support français
Personnalisation : WebRankInfo ™


 ODP  Firefox  Alsacreations  annuaire webmaster Yagoort