Slash et pas Slash

Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics

pokemon_jojo
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 20
Inscription: 2 Oct 2006

Slash et pas Slash

Message le Lun Oct 02, 2006 13:57

Bonjour, à tous, j'ai un souci de rewriting et là perso je sèche !!!!

Je vous explique mon problème :

J'ai installé un blog (dotclear), je veux de belles URL, j'ai donc rajouté un .htaccess contenant ceci :

Code: Tout sélectionner
RewriteEngine On

RewriteCond %{REQUEST_URI} !/themes
RewriteCond %{REQUEST_URI} !/ecrire
RewriteCond %{REQUEST_URI} !\.php
RewriteCond %{REQUEST_URI} !\.jpg$
RewriteCond %{REQUEST_URI} !\.png$
RewriteRule (.*)$ index.php/$1


Tout marche bien sauf un problème de slash :

http://www.mibhouse.org/pokemon_jojo/ -> OK :)
http://www.mibhouse.org/pokemon_jojo -> PAS OK :(

Ou est le problème ???? j'ai essayé plein de truc différents, mais ca n'a rien changé, ou je me retrouve avec des internals errors !

J'ai même essayer un rewriting directement en placant un .htaccess à la racine de mon site (http://www.mibhouse.org)

Code: Tout sélectionner
RewriteEngine On

RewriteRule ^pokemon_jojo/?$  pokemon_jojo/ [L]
RewriteRule ^pokemonjojo/?$  pokemon_jojo/ [L]


Alors la ca marche pour http://www.mibhouse.org/pokemonjojo ou http://www.mibhouse.org/pokemonjojo/

Mais ca ne change rien pour http://www.mibhouse.org/pokemon_jojo

C'est vraiment bizarre, on dirait que apache ne prend pas en compte ma règle avec le underscore !!!

Enfin bref, si quelqu'un à une solution, ce serait cool

Merci

PS : je suis hébergé celeonet

PaulArdemue
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 30
Inscription: 25 Sep 2006

Message le Lun Oct 02, 2006 16:32

Avec ce .htaccess ça tourne surement en boucle:
Code: Tout sélectionner
RewriteEngine On

RewriteRule ^pokemon_jojo/?$  pokemon_jojo/ [L]
RewriteRule ^pokemonjojo/?$  pokemon_jojo/ [L]


Pour l'addresse http://www.mibhouse.org/pokemon_jojo il utilise la première ligne et réecrit /pokemon_jojo/ en /pokemon_jojo/ en /pokemon_jojo/ ...

D'ailleurs cette ligne n'a aucun intérêt puisque tu n'apportes pas de transformation pour /pokemon_jojo/. Autant la supprimer [edit] ou supprimer le /?.

Je peux me tromper.

pokemon_jojo
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 20
Inscription: 2 Oct 2006

Message le Lun Oct 02, 2006 16:52

PaulArdemue a écrit:Avec ce .htaccess ça tourne surement en boucle:
Code: Tout sélectionner
RewriteEngine On

RewriteRule ^pokemon_jojo/?$  pokemon_jojo/ [L]
RewriteRule ^pokemonjojo/?$  pokemon_jojo/ [L]


Justement non, puisqu'il est directement à la racine de mon site ( http://www.mibhouse.org/.htaccess )

PaulArdemue a écrit:Pour l'addresse http://www.mibhouse.org/pokemon_jojo il utilise la première ligne et réecrit /pokemon_jojo/ en /pokemon_jojo/ en /pokemon_jojo/ ...

D'ailleurs cette ligne n'a aucun intérêt puisque tu n'apportes pas de transformation pour /pokemon_jojo/. Autant la supprimer [edit] ou supprimer le /?.

Je peux me tromper.


L'intérêt était que le "/?" indique qu'il y a slash ou pas (ex. avec la deuxième ligne, la redirection marche avec et sans slash)

Je voulais donc faire une sorte de "forcing" pour lui indiquer de faire la redirection avec ou sans slash, mais ca ne marche pas :(

PaulArdemue
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 30
Inscription: 25 Sep 2006

Message le Lun Oct 02, 2006 17:28

Ce .htaccess fonctionne comme tu l'entends:
Code: Tout sélectionner
RewriteEngine On
RewriteRule ^jo_jo/?$  jojo/ [L]
RewriteRule ^jojo$  jojo/ [L]


C'est à dire que je peux utiliser les URL suivantes indifférement:
http://localhost/jo_jo
http://localhost/jo_jo/
http://localhost/jojo
http://localhost/jojo/

Supprime donc le "/?" de la deuxième ligne car, chez moi en tout cas, cela fait tourner dans le vide.

pokemon_jojo
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 20
Inscription: 2 Oct 2006

Message le Lun Oct 02, 2006 17:39

Chez moi ca ne tourne pas dans le vide ! et si je l'enlève, l'url sans le slash ne marche plus.

Bon je reposte mon .htaccess que j'ai modifié pour tester situé à la racine (http://www.mibhouse.org/.htaccess)

Code: Tout sélectionner
RewriteEngine On

RewriteRule ^pokemon-jojo/?$  pokemon_jojo/ [L]
RewriteRule ^pokemonjojo/?$  pokemon_jojo/ [L]
RewriteRule ^jo_jo/?$  pokemon_jojo/ [L]
RewriteRule ^pokemon_jojo/?$  pokemon_jojo/ [L]


Tout marche :

http://www.mibhouse.org/pokemon-jojo/
http://www.mibhouse.org/pokemon-jojo
http://www.mibhouse.org/pokemonjojo
http://www.mibhouse.org/pokemonjojo/
http://www.mibhouse.org/jo_jo/
http://www.mibhouse.org/jo_jo
http://www.mibhouse.org/pokemon_jojo/

SAUF

http://www.mibhouse.org/pokemon_jojo !!!!

c'est à devenir fou !!! un truc doit m'échaper !!!

PaulArdemue
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 30
Inscription: 25 Sep 2006

Message le Lun Oct 02, 2006 17:40

Je disais de supprimer le "/?" de MA ligne.

Dans ton cas remplace la ligne
Code: Tout sélectionner
RewriteRule ^pokemon_jojo/?$  pokemon_jojo/ [L]
par
Code: Tout sélectionner
RewriteRule ^pokemon_jojo$  pokemon_jojo/ [L]

pokemon_jojo
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 20
Inscription: 2 Oct 2006

Message le Lun Oct 02, 2006 18:15

PaulArdemue a écrit:Je disais de supprimer le "/?" de MA ligne.

Dans ton cas remplace la ligne
Code: Tout sélectionner
RewriteRule ^pokemon_jojo/?$  pokemon_jojo/ [L]
par
Code: Tout sélectionner
RewriteRule ^pokemon_jojo$  pokemon_jojo/ [L]


J'ai déjà essayé, ca ne change rien :(

PaulArdemue
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 30
Inscription: 25 Sep 2006

Message le Lun Oct 02, 2006 18:49

Chez moi ceci fonctionne parfaitement

Code: Tout sélectionner
RewriteEngine On

RewriteRule ^pokemonjojo/?$  pokemon_jojo/ [L]
RewriteRule ^pokemon_jojo$  pokemon_jojo/ [L]


Tu as un problème autre que ton .htaccess :]

pokemon_jojo
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 20
Inscription: 2 Oct 2006

Message le Lun Oct 02, 2006 19:11

En fait, après mures réflexions, j'ai supprimé le .htaccess situé dans le rep ( ex. http://www.mibhouse.org/pokemon_jojo/.htaccess )

et cette fois, si ça marche !!! du coup je me demande ce qui ne va pas dans ce .htaccess que voici :



Code: Tout sélectionner
RewriteEngine On

RewriteCond %{REQUEST_URI} !/themes
RewriteCond %{REQUEST_URI} !/ecrire
RewriteCond %{REQUEST_URI} !\.php
RewriteCond %{REQUEST_URI} !\.jpg$
RewriteCond %{REQUEST_URI} !\.png$
RewriteRule ([^/]*)/?$ index.php/$1

PaulArdemue
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 30
Inscription: 25 Sep 2006

Message le Lun Oct 02, 2006 19:22

Tu veux réécrire en "index.php/$1" ?
Je ne sais pas ce que cela signifie.

http://www.domain.com/pouet/

deviendrait

http://www.domain.com/index.php/pouet/

?

pokemon_jojo
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 20
Inscription: 2 Oct 2006

Message le Lun Oct 02, 2006 19:49

PaulArdemue a écrit:Tu veux réécrire en "index.php/$1" ?
Je ne sais pas ce que cela signifie.

http://www.domain.com/pouet/

deviendrait

http://www.domain.com/index.php/pouet/

?


éxactement, je veux changer par exemple :

http://www.mibhouse.org/pokemon_jojo/pouet en http://www.mibhouse.org/pokemon_jojo/index.php/pouet

et à priori tout marche, sauf que du coup,

http://www.mibhouse.org/pokemon_jojo (sans le slash à la fin ne marche plus !)

PaulArdemue
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 30
Inscription: 25 Sep 2006

Message le Lun Oct 02, 2006 21:19

Oui mais quelle erreur tu obtiens ?


rog
WRInaute passionné
WRInaute passionné
 
Messages: 1662
Inscription: 21 Sep 2006

Message le Lun Oct 02, 2006 23:42

c'est la deuxième fois que je vois ça et que je n'arrive pas à comprendre

je ne suis pas encore utilisateur de mod_rewrite mais

un rewrite est bien une réecriture d'url

les réecritures du style

http://www.domain.com/index.php/pouet/

impliquent que index.php soit un dossier

non ?

rog

pokemon_jojo
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 20
Inscription: 2 Oct 2006

Message le Mar Oct 03, 2006 3:22

PaulArdemue a écrit:Oui mais quelle erreur tu obtiens ?


il suffit de cliquer sur le lien pour tester :P http://www.mibhouse.org/pokemon_jojo

@rog : non, index.php n'est pas un dossier, c'est un fichier .php, mais ce principe permet d'avoir des urls "presque belle" et moi je veux avoir des urls super belles :D


rog
WRInaute passionné
WRInaute passionné
 
Messages: 1662
Inscription: 21 Sep 2006

Message le Mar Oct 03, 2006 3:43

je te remercie et te felicite de ta perseverance

mais si j'ai bien compris l'url rewriting

le premier parametre d'une rule c'est l'url demandée par le client

soit :

http://www.domain.com/index.php/pouet/

le deuxième parametre d'une rule est l'adresse réelle du fichier

par exemple

http://www.domain.com/pouet/index.php

tout ça pour dire qu'il me semble que la destination doit exister

rog

Slash et pas Slash

Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

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 :



Qui est en ligne

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