[fini] url rewriting & PHP: erreur dans .htaccess?

Nouveau WRInaute
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)
 
WRInaute discret
Re: url rewriting & PHP: erreur dans .htaccess?

MrMetal a dit:
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:
RewriteRule ^ma-page([0-9]+)\.php  index.php?id=$1  [QSA,L]
qui te permet d'écrire
Code:
<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
 
Nouveau WRInaute
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>
 
WRInaute passionné
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]+
;)
 
Nouveau WRInaute
RewriteRule ^/MrMetal/portfolio/grenier/index/([A-Za-z]+)/([0-9]+)$ /MrMetal/portfolio/grenier/index.php?filtre=$1&id=$2 [QSA,L]

comme ceci ?
 
Nouveau WRInaute
apparement l'url rewriting marche vu que je ne tombe pas sur une erreur 404 si je fait [...]/index/PHP/1

le problme est surment que je ne peux pas récuperer les valeur des variable... comment faire?
 
WRInaute passionné
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
Code:
print_r($_GET)
 
Nouveau WRInaute
Voici le contenu du .htaccess
Code:
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:
<?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 ..
 
Nouveau WRInaute
tjrs pas .... je vais devenir fou lol

probleme:

Code:
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!
 
WRInaute passionné
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.
 
Discussions similaires
Haut