[réglé] Apache & Mod_rewrite : je comprends pas :)

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !

Modérateur : Asumbaa

Répondre
Thomas
Varan
Messages : 1907
Enregistré le : 07 janv. 2004, 17:29

[réglé] Apache & Mod_rewrite : je comprends pas :)

Message par Thomas » 01 sept. 2006, 00:54

Bonjour,

J'ai des URLs du type :
http://site.com/carnet/index/19-apercu
que je voudrais transformer en :
http://site.com/carnet/19-apercu

J'ai donc mis dans mon .htaccess situé à la racine du site :

Code : Tout sélectionner

RewriteRule ^carnet/(.*) carnet/index/$1 [L]
ou encore

Code : Tout sélectionner

RewriteRule ^carnet/(.*) carnet/index.php/$1 [L]
Mais j'ai une erreur 500 à chaque fois :|

Pourtant si je met :

Code : Tout sélectionner

RewriteRule ^carnet/(.*) carnet/index/ [L]
Toute mes tentatives d'accès à http://site.com/carnet/** aboutissent bien à http://site.com/carnet/index/

Qu'est-ce qui cloche selon vous ? :(

Merci

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1b2) Gecko/20060821 Firefox/2.0b2
Modifié en dernier par Thomas le 01 sept. 2006, 14:05, modifié 1 fois.
Anciennement Toto.

Asumbaa
Tyrannosaurus Rex
Messages : 2411
Enregistré le : 08 déc. 2004, 20:07

Message par Asumbaa » 01 sept. 2006, 10:57

Salut,

Quelques idées en vrac, sans réelle certitude...

1/ Tu as bien mis $1 (chiffre un) et pas $l (petit L) ?
2/ Attention à ne pas embarquer toutes tes adresses dans ta rewrite rule. Là si quelqu'un essaye d'accéder avec l'ancienne adresse il va se faire rewriter et tomber nulle part. Il faudrait spécifier un peu...
3/ Zut je crois que j'avais une troième idée mais elle m'a échappé... Je repasserai :p

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.6) Gecko/20060728 Firefox/1.5.0.6

Thomas
Varan
Messages : 1907
Enregistré le : 07 janv. 2004, 17:29

Message par Thomas » 01 sept. 2006, 14:04

Merci mais le problème venait du fait qu'on ne peux pas rewriter "la même URL". J'avais pas le droit de remettre "carnet" dans la deuxième partie :
RewriteRule ^carnet/(.*) carnet/index/$1 [L]
Le solution est soit de renommer le dossier, soit de mettre le .htaccess dans ce dossier et agir en conséquence ;)

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1b2) Gecko/20060821 Firefox/2.0b2
Anciennement Toto.

PsyDk
Lézard à collerette
Messages : 317
Enregistré le : 23 sept. 2003, 09:41

Message par PsyDk » 01 sept. 2006, 19:57

Sinon y'a le mode Multviews qui est bien sympa et que j'utilise pour tous les sites que je fais.

Tu mets

Code : Tout sélectionner

Options +MultiViews
en haut de ton .htacess

Et tu utilises

Code : Tout sélectionner

$_SERVER['PATH_INFO']
pour récupérer tout ce qui suit après le nom de ta page.

http://example.com/carnet/onk/plop renverra sur carnet.php et tu auras « /onk/plop » dans $_SERVER['PATH_INFO']

C'est moins lourd qu'activer l'url rewriting.

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.0; fr; rv:1.8.0.6) Gecko/20060728 Firefox/1.5.0.6
Modifié en dernier par PsyDk le 02 sept. 2006, 09:12, modifié 1 fois.

Benoit
Administrateur
Messages : 4894
Enregistré le : 19 juil. 2003, 10:59

Message par Benoit » 01 sept. 2006, 22:45

Ah, intéressant. Je pensais qu'il fallait un fichier blabla.php au lieu d'index.php pour que ça fonctionne.
♫ Li tens s'en veit, je n'ai riens fais ;
Li tens revient, je ne fais riens. ♪

PsyDk
Lézard à collerette
Messages : 317
Enregistré le : 23 sept. 2003, 09:41

Message par PsyDk » 02 sept. 2006, 09:10

Oops, au temps pour moi. Benoit, tu as raison, il faudrait écrire example.com/index/blabla/onk. Je corrige mon message.

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.0; fr; rv:1.8.0.6) Gecko/20060728 Firefox/1.5.0.6

Répondre

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité