Version complète: sur le forum Webmaster Hub : Rewriting
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > Fichier .htaccess et réécriture d'URLs
yvan
Bonjour à tous ;-)

J'essaie en vain de créer un rewriting avec cette adresse
www.monsite.com/affichecat.php?nomcat=Habillement

mon hebergeur autorise le rewriting et j'ai fais un test et sa marche
RewriteEngine on
RewriteRule ^nexistepas.html$ /trouve.html [L]

Voici le fichier htaccess que j'ai fais, mais là, sa ne marche pas !

RewriteEngine on
RewriteRule ^affichecat-([0-9]+)-([0-9]+)\.html$ /affichecat.php?numero=$1 [L]


et j'aimerais également remplacer les %20
www.monsite.com/affichecat.php?nomcat=Habillement


Si qql a une solution, sa fais 2 jours que je cherhe l'erreur.

Merci, et bonne fin de semaine :-)




Posté 2 fois car erreur de catégorie
Ryo
edit: Pour ton cas ca serai réécrire

www.monsite.com/affichecat.php?nomcat=Habillement

en

www.monsite.com/affichecat-Habillement.html

c'est bien ça ??

Si oui, essaye :

RewriteEngine on
RewriteRule ^affichecat-([a-Z]+)\.html$ /affichecat.php?nomcat=$1 [L]
Compte supprimé
Quelles sont tes url de base, et quelles sont les url que tu veux obtenir ?
yvan
Merci pour ces réponses...

pour la premiere réponse cela me donne une erreur interne ! donc.... marche pas :-(

L'url de base est
www.monsite.com/affichecat.php?nomcat=Habillement

j'aimerai que sa donne en gros
www.monsite.com/affichecat-Habillement.htm

ou www.monsite.com/categorie-Habillement.htm


?? en tous cas, merci quand même pour votre premiére réponse.
Compte supprimé
RewriteEngine on
RewriteRule ^affichecat-(.+)\.htm$ /affichecat.php?nomcat=$1 [L]

essaye avec et sans le /


Pour les %20 dans les url, il faut les encoder par urlencode() :

CODE
<a href="affichecat-<?php echo urlencode($nomcat); ?>.htm">Mon beau lien sans %20</a>
yvan
Merci beaucoup, je vais essayer ... je posterai un msg dans le cas où sa marche ou pas .. Je ne connaissais pas webmaster-hub, je vois que ici vous êtes très sympa :-)
yvan
Non... sa marche pas non plus, je ne sais pas ce que je fais comme erreur mais je vais chercher. Un grand merci qq même ;-)
Compte supprimé
QU'est ce que tu fais exactement ?
Quelle est l'erreur envoyée ?
as tu essayé d'appeler directement la forme rewritée ?
Julien L.
Bonsoir, pourriez-vous copier/coller votre .htaccess ?
yvan
cela fonctionne en effet si j'appele directement la page rewritée
mais sa ne fonctionne pas si je pas par les liens habituels.

Le code .htaccess

RewriteEngine on
RewriteRule ^affichecat-(.+)\.htm$ /affichecat.php?nomcat=$1 [L]
yvan
Je crois avoir trouvé mon erreur, merci pour tout jeroem

spécialiste je pense ;-)
Compte supprimé
Si tu crois avoir trouvé, ce serait bien d'en faire profiter la communauté ;o)
yvan
J'avais bien l'intention de mettre un post aprés vérification ! wink.gif

je n'avais pas changé le liens du menu

<a target="_parent" href="affichecat.php?nomcat=<? echo $t[$i]['cat'];?>" >

qui est devenu :

<a target="_parent" href="affichecat-<?php echo urlencode($nomcat); ?><? echo $t[$i]['cat'];?>.htm">

par contre je galére un peut pour "urlencode", mais bon... j'apprends wink.gif


Merci pour ces leçons!
yvan
Qui aurait une solution ??

<a target="_parent" href="affichecat-<?php echo urlencode($nomcat); ?><? echo $t[$i]['cat'];?>.htm">

mon urlencode ne me remplace pas les %20, et là je ne pige plus !
Compte supprimé
Déjà le . (point) permet de concaténer, cad de fusionner deux variables :
CODE
<a target="_parent" href="affichecat-<?php echo urlencode($nomcat).$t[$i]['cat'];?>.htm">


Question : que contient la variable $t[$i]['cat'] ?
Il n'y a pas de séparateur entre $nomcat et $t[$i]['cat'] ?

Que vaut $nomcat ?
Urlencode() remplace (entre autre) les espaces par des + mais si la variable contient déjà des %20, pas sur que ça change qq chose.
yvan
Merci pour les précisions, je vais essayer de comprendre un peu mieux ce langage !
Merci
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.