réécrire des urls /index.php?page=$valeur en /valeur
22 messages • Page 1 sur 2 • 1, 2
Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics
réécrire des urls /index.php?page=$valeur en /valeur
Bonjour,
J'ai un site avec des URLs du type suivant :
http://www.example.com/index.php?page=accueil
J'ai défini des liens du type http://www.example.com/accueil
Après avoir fait pointer mes href sur le pattern de mes urls fictives, et après avoir bien vérifié toute la configuration, la nouvelle adresse (dynamique) s'affiche dans le navigateur...
Aucun intéret de changer mes liens puisque le résultat est le même dans la barre d'adresse !
En revanche, j'ai pu arriver, via l'utilisation de regex, à supprimer quelques éléments pour avoir des URLs du type http://www.example.com/?=accueil
Mais il semblerait que les caractères ? et = ne sont pas gérés par le mod_rewrite d'apache, dans l'adresse à réécrire.
J'ai bien essayé de les masquer comme pour les regex pcre, mais pas de résultat.
Pourriez-vous m'aider à avoir des URLs du type http://www.example.com/accueil,
càd avec le paramètre de la variable dans la barre d'adresse...
Les infos :
adresse fictive
http://www.example.com/accueil
adresse réelle
http://www.example.com/index.php?page=accueil
Le fichier .htaccess :
Si c'est trop évident,
et/ou si je n'ai pas posté au bon endroit, merci de m'en informer par mp et de verrouiller ce thread.
edit dd32 : example.com pour les exemples d'url
J'ai un site avec des URLs du type suivant :
http://www.example.com/index.php?page=accueil
J'ai défini des liens du type http://www.example.com/accueil
Après avoir fait pointer mes href sur le pattern de mes urls fictives, et après avoir bien vérifié toute la configuration, la nouvelle adresse (dynamique) s'affiche dans le navigateur...
Aucun intéret de changer mes liens puisque le résultat est le même dans la barre d'adresse !
En revanche, j'ai pu arriver, via l'utilisation de regex, à supprimer quelques éléments pour avoir des URLs du type http://www.example.com/?=accueil
Mais il semblerait que les caractères ? et = ne sont pas gérés par le mod_rewrite d'apache, dans l'adresse à réécrire.
J'ai bien essayé de les masquer comme pour les regex pcre, mais pas de résultat.
Pourriez-vous m'aider à avoir des URLs du type http://www.example.com/accueil,
càd avec le paramètre de la variable dans la barre d'adresse...
Les infos :
adresse fictive
http://www.example.com/accueil
adresse réelle
http://www.example.com/index.php?page=accueil
Le fichier .htaccess :
- Code: Tout sélectionner
RewriteEngine On
RewriteRule ^(accueil|toto|tata|tonton )$ /index.php?page=$1 [L]
#qui permet d'afficher la page correcte, mais avec la même url qu'avant... grrr...
RewriteRule ^index(\.)([a-z0-9]*)$ http://www.example.com/ [L]
# qui permet de supprimer 'index' de l'url du navigateur.
RewriteRule ^page(=)$ http://www.example.com/
# qui supprime 'page' du navigateur...
Si c'est trop évident,
et/ou si je n'ai pas posté au bon endroit, merci de m'en informer par mp et de verrouiller ce thread.
edit dd32 : example.com pour les exemples d'url
- Mysteriousfea
- Nouveau WRInaute
- Messages: 18
- Inscription: Lun Mar 31, 2008 17:57
Ca m'intérésserait, si quelqu'un a une solution...
>> Mais il semblerait que les caractères ? et = ne sont pas gérés par le mod_rewrite d'apache, dans l'adresse à réécrire.
et pourtant ils le sont. Tout le jeu de caractère est pris en compte.
Le = est un simple caractère.
Le ? est un métacaractère, il doit être échapper pour retrouver sa simple valeur de caractere si tel est son emploi dans ton code.
\?
et pourtant ils le sont. Tout le jeu de caractère est pris en compte.
Le = est un simple caractère.
Le ? est un métacaractère, il doit être échapper pour retrouver sa simple valeur de caractere si tel est son emploi dans ton code.
\?
- Mysteriousfea
- Nouveau WRInaute
- Messages: 18
- Inscription: Lun Mar 31, 2008 17:57
Tu aurais un code ?
Merci
Merci
Mysteriousfea a écrit:Tu aurais un code ?
Merci
pour cet exemple ?
-http://www.example.com/accueil
vers
-http://www.example.com/index.php?page=accueil
- Code: Tout sélectionner
RewriteRule ^(.*)$ /index.php?page=$1 [L]
- Mysteriousfea
- Nouveau WRInaute
- Messages: 18
- Inscription: Lun Mar 31, 2008 17:57
Ca marche pas... Ca provoque une erreur serveur... Tu sais d'où ça peut venir ?
pas franchement, mais j'ai encore droit a 1 tir ?
- Code: Tout sélectionner
#execute la règle si le fichier existe
RewriteCond %{REQUEST_FILENAME} -f
#exlu le fichier index.php
RewriteCond %{REQUEST_URI} !^/index.php
#redirection
RewriteRule ([^/]*)$ /index.php?page=$1 [R,L]
Bonjour,
J'ai exactement le même problème!
Quand je mets l'adresse www.domaine.tld/valeur1/valeur2 dans mon navigateur et que je valide, il me fait une sorte de redirection et affiche dans la barre d'adresse www.domaine.tld/index.php?id=valeur1&id2=valeur2
Là je comprends pas trop ce qu'il se passe.
PS: je teste sous easyphp 2.0
J'ai exactement le même problème!
Quand je mets l'adresse www.domaine.tld/valeur1/valeur2 dans mon navigateur et que je valide, il me fait une sorte de redirection et affiche dans la barre d'adresse www.domaine.tld/index.php?id=valeur1&id2=valeur2
Là je comprends pas trop ce qu'il se passe.
PS: je teste sous easyphp 2.0
Il faut savoir que Apache ajoute un / après une URL qui ne finit pas avec un type mime.
Donc une URL de la forme
http://www.example.com/accueil
est vue en fait comme
http://www.example.com/accueil/
On peut désactiver ce comportement, mais ce n'est pas conseillé. Je te laisse chercher dans la doc si tu veux vraiment le faire.
Donc tes règles ne doivent pas supposer que l'URL se fini sans / à la fin.
Par ailleurs, tu mets des [L] à la fin de tes règles, donc ça empêche l'execution des suivantes...
Enfin, pour filter ce qui suit le ? il faut utiliser QUERY_STRING
Essaie donc ce qui suit:
sans aucune autre règle.
La règle que tu voulais utiliser pour enlever index peut facilement faire boucler. Et ta dernière règle ne peut pas filtrer ce qui suit le ?
Donc une URL de la forme
http://www.example.com/accueil
est vue en fait comme
http://www.example.com/accueil/
On peut désactiver ce comportement, mais ce n'est pas conseillé. Je te laisse chercher dans la doc si tu veux vraiment le faire.
Donc tes règles ne doivent pas supposer que l'URL se fini sans / à la fin.
Par ailleurs, tu mets des [L] à la fin de tes règles, donc ça empêche l'execution des suivantes...
Enfin, pour filter ce qui suit le ? il faut utiliser QUERY_STRING
Essaie donc ce qui suit:
- Code: Tout sélectionner
RewriteEngine On
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^(.*) /index.php?page=$1
sans aucune autre règle.
La règle que tu voulais utiliser pour enlever index peut facilement faire boucler. Et ta dernière règle ne peut pas filtrer ce qui suit le ?
Bonsoir!
Merci pour ta réponse, mais j'ai essayé ce que tu disais et cela ne change rien au fait qu'après avoir tapé l'adresse réécrite dans la barre de lien de mon navigateur, il me reaffiche l'ancienne adresse.
C'est vraiment bizarre ce problème, en plus je ne trouve pas d'autres personnes dans mon cas.
Merci en tout cas!
Merci pour ta réponse, mais j'ai essayé ce que tu disais et cela ne change rien au fait qu'après avoir tapé l'adresse réécrite dans la barre de lien de mon navigateur, il me reaffiche l'ancienne adresse.
C'est vraiment bizarre ce problème, en plus je ne trouve pas d'autres personnes dans mon cas.
Merci en tout cas!
22 messages • Page 1 sur 2 • 1, 2
Formation recommandée sur ce thème :
Formation URL Rewriting et sites dynamiques : apprenez comment mettre en place la réécriture d'URL, comment optimiser vos URL et profiter de vos pages dynamiques pour booster votre référencement. Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Classement Interbrand 2006 : la percée de Google
- Google souhaite lever plus de 2 milliards de dollars
- Combien vaut un lien ?
- Les deux échelles du PageRank
- Les 2 échelles de PageRank : toolbar et DMOZ
- La balise meta NOYDIR de Yahoo
- Google n'indexe pas les URL qui se terminent par .0 ?
- 50 000 messages et 4 000 membres sur WebRankInfo !
- URL canonique : plugins pour Wordpress, Drupal, Joomla et Magento
- Connaitre son PageRank sans la Google Toolbar...
- XMLreader : comment sortir les résultats valeur par valeur
- valeur (php) et checkbox
- [PHP] problème valeur de variables
- Tableau en PHP - Nombre total de valeur
- récuperer valeur php liste multiple
- PHP: récupérer la valeur d'une ancre
- PHP : transformer une valeur en minuscules
- Comment transmetre valeur d un prog a l autre en php..???
- Url avec une valeur de variable à rallonge (md(5) de php)
- PHP récuperer la valeur d'une cellule d'un fichier Excel
- [résolu]PHP envoyer la valeur d'un champs vers une autre pag
- valeur d'un BL PR6
- Valeur de la variable HTTP_USER_AGENT
- valeur d'un site
- valeur de ces NDD
Consultez la description détaillée des produits ou services de Google suivants : Google Toolbar
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités



le forum