[fini] url rewriting & PHP: erreur dans .htaccess?
14 messages • Page 1 sur 1
Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics
[fini] url rewriting & PHP: erreur dans .htaccess?
Bonjour, je suis en train de faire le site http://www.sexy-angelo.net/MrMetal/portfolio/grenier/ et en même temps d'apprendre l'url rewriting. Après toutes mes tentatives je n'arrive pas a le faire fonctionner. En effet j'ai placé un .htaccess a la racine du site (http://www.sexy-angelo.net/MrMetal/portfolio/grenier/)
Il ressemble a ceci
Options +FollowSymlinks
RewriteEngine On
RewriteRule ^index/([A-Za-z])/([0-9])$ /index.php?filtre=$1&id=$2 [L]
J'ai des urls du type http://www.sexy-angelo.net/MrMetal/port ... ndex/PHP/1 et qui devrait etre http://www.sexy-angelo.net/MrMetal/port ... e=PHP&id=1
Je n'ai pas d'erreur mais lorsque je tente de récupérer $_GET['filtre'] on me dit qu'il n'est pas défini (isset)
Il ressemble a ceci
Options +FollowSymlinks
RewriteEngine On
RewriteRule ^index/([A-Za-z])/([0-9])$ /index.php?filtre=$1&id=$2 [L]
J'ai des urls du type http://www.sexy-angelo.net/MrMetal/port ... ndex/PHP/1 et qui devrait etre http://www.sexy-angelo.net/MrMetal/port ... e=PHP&id=1
Je n'ai pas d'erreur mais lorsque je tente de récupérer $_GET['filtre'] on me dit qu'il n'est pas défini (isset)
Dernière édition par MrMetal le Dim Juil 03, 2005 9:53, édité 1 fois.
Re: url rewriting & PHP: erreur dans .htaccess?
MrMetal a écrit:Je n'ai pas d'erreur mais lorsque je tente de récupérer $_GET['filtre'] on me dit qu'il n'est pas défini (isset)
La solution serait d'ajouter le flag [QSA] en fin de ligne, afin de récupérer tes query strings. Exemple :
- Code: Tout sélectionner
RewriteRule ^ma-page([0-9]+)\.php index.php?id=$1 [QSA,L]
qui te permet d'écrire
- Code: Tout sélectionner
<a href='ma-page7.php?start=5'>Glop</a>
et donc de récupérer toutes les variables $_GET qui vont bien (et qui n'ont rien à faire dans la réécriture).
PP
J'ai peur de ne pas avoir compris...
Je veux dire je n'ai aucun interet de faire comme cela : <a href='ma-page7.php?start=5'>Glop</a>
Je veux justement aucun "?" ni "&" afin de ne pas avoir les noms de variable $_GET
Dans ton exemple il me faudrai <a href='ma-page/7/5'>Glop</a> comme liens qui fasse <a href='ma-page.php?id=7&start=5'>Glop</a>
Je veux dire je n'ai aucun interet de faire comme cela : <a href='ma-page7.php?start=5'>Glop</a>
Je veux justement aucun "?" ni "&" afin de ne pas avoir les noms de variable $_GET
Dans ton exemple il me faudrai <a href='ma-page/7/5'>Glop</a> comme liens qui fasse <a href='ma-page.php?id=7&start=5'>Glop</a>
-

Patrice A. - Modérateur

- Messages: 2413
- Inscription: Ven Fév 11, 2005 19:36
Salut
[A-Z] désigne la classe "lettres en majuscules". Tu n'as pas précisé, dans ton exemple, combien de caractères de chaque classe peuvent être présents.
Je parie qu'avec /A/1 au lieu de /PHP/1 ça marche
Mets un + après la définition de la classe pour dire 'au moins une lettre' au lieu de 'une lettre' :
[a-zA-Z]+

[A-Z] désigne la classe "lettres en majuscules". Tu n'as pas précisé, dans ton exemple, combien de caractères de chaque classe peuvent être présents.
Je parie qu'avec /A/1 au lieu de /PHP/1 ça marche
Mets un + après la définition de la classe pour dire 'au moins une lettre' au lieu de 'une lettre' :
[a-zA-Z]+
cela ne marche tjrs pas ...
Options +FollowSymlinks
RewriteEngine On
RewriteRule ^index/([A-Za-z]+)/([0-9]+)$ index.php?filtre=$1&id=$2 [QSA,L]
lorsque je fais un <? if(isset($_GET['filtre'])) echo "réussi"; ?> cela ne marche toujours pas :/
or ceci http://www.sexy-angelo.net/MrMetal/port ... ndex/PHP/1 devrait etre interprété en ça http://www.sexy-angelo.net/MrMetal/port ... tre=PHP&id =1
filtre est donc bien défini...
Options +FollowSymlinks
RewriteEngine On
RewriteRule ^index/([A-Za-z]+)/([0-9]+)$ index.php?filtre=$1&id=$2 [QSA,L]
lorsque je fais un <? if(isset($_GET['filtre'])) echo "réussi"; ?> cela ne marche toujours pas :/
or ceci http://www.sexy-angelo.net/MrMetal/port ... ndex/PHP/1 devrait etre interprété en ça http://www.sexy-angelo.net/MrMetal/port ... tre=PHP&id =1
filtre est donc bien défini...
-

Patrice A. - Modérateur

- Messages: 2413
- Inscription: Ven Fév 11, 2005 19:36
A mon avis tes règles devraient être définies à partir de la racine :
/MrMetal/portfolio/grenier/index/....
/MrMetal/portfolio/grenier/index/....
-

Patrice A. - Modérateur

- Messages: 2413
- Inscription: Ven Fév 11, 2005 19:36
As-tu d'autres règles de réécriture ?
Donne le contenu de ton .htaccess s'il te plaît.
Et au lieu de ton isset, fais plutôt un
Donne le contenu de ton .htaccess s'il te plaît.
Et au lieu de ton isset, fais plutôt un
- Code: Tout sélectionner
print_r($_GET)
Voici le contenu du .htaccess
Et j'ai rajouté ceci a l'index.php
-> résultat : http://www.sexy-angelo.net/MrMetal/port ... dex/PHP/1/
Ca ne passe pas apparement...
En réflechissant peut etre que des regles de dotclear (mon blog http://www.sexy-angelo.net/MrMetal/) puissent interferer non ?
J'ai mon hébergement chez OVH si cela peut vous aider ..
- Code: Tout sélectionner
Options +FollowSymlinks
RewriteEngine On
RewriteBase /MrMetal/portfolio/grenier/
RewriteRule ^index/([A-Za-z]+)/([0-9]+)/$ index.php?filtre=$1&id=$2 [L]
Et j'ai rajouté ceci a l'index.php
- Code: Tout sélectionner
<?php print_r($_GET); ?>
-> résultat : http://www.sexy-angelo.net/MrMetal/port ... dex/PHP/1/
Ca ne passe pas apparement...
En réflechissant peut etre que des regles de dotclear (mon blog http://www.sexy-angelo.net/MrMetal/) puissent interferer non ?
J'ai mon hébergement chez OVH si cela peut vous aider ..
-

Patrice A. - Modérateur

- Messages: 2413
- Inscription: Ven Fév 11, 2005 19:36
chez ovh ? alors essaie :
Options +FollowSymlinks
RewriteEngine On
RewriteBase /MrMetal/portfolio/grenier/
RewriteRule ^index/([A-Za-z]+)/([0-9]+)/$ /index.php?filtre=$1&id=$2 [L]
tjrs pas .... je vais devenir fou lol
probleme:
Je n'ai pas de page d'erreur 404 lorque je rentre cela alors que la page existepas.php n'existe vrmt pas!
probleme:
- Code: Tout sélectionner
Options +FollowSymlinks
RewriteEngine On
RewriteBase /MrMetal/portfolio/grenier/
RewriteRule ^index/([A-Za-z]+)/([0-9]+)/$ [b]/existepas.php?[/b]filtre=$1&id=$2 [L]
Je n'ai pas de page d'erreur 404 lorque je rentre cela alors que la page existepas.php n'existe vrmt pas!
-

Patrice A. - Modérateur

- Messages: 2413
- Inscription: Ven Fév 11, 2005 19:36
Je ne sais pas comment tu as fait ton compte, mais toutes les pages en -http://www.sexy-angelo.net/MrMetal/portfolio/grenier/index/ renvoient à la même... tu dois avoir une règle de réécriture bizarre qui traîne quelque part.
14 messages • Page 1 sur 1
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 :
- Suite de l'article sur le fichier .htaccess : l'URL rewriting
- Article sur le fichier .htaccess
- 3ème partie de l'article .htaccess : les réécritures conditionnelles
- l'URL Rewriting expliqué aux débutants
- Aperçu des différents types de redirection
- L'URL Rewriting expliqué aux débutants
- Tutoriel URL Rewriting
- Optimiser le référencement d'un forum phpBB : réécriture d'URL
- Comment éviter les contenus dupliqués (avec/sans le www)
- Liste d'erreurs classiques de duplicate content
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités


le forum