[résolu] - htaccess et urlrewriting dans un sous dossier

matlibu

Nouveau WRInaute
bonjour,

j'ai lu plusieurs sujet sur le urlrewriting et je trouve cela fort interessant.

j'ai potasse pas mal de sujet à ce propos dans ce forum mais aucune reponse à ma question !

je veux mettre en place cette solution, mais prudent , je veux faire un test dans un sous dossier du site et ca marche pas :erreur 404
voila les hypotheses de depart
hebergement ovh 240plan
adresse du test : http://www.trucmuche.com/rewriting/
fichier .htaccess :

Options +FollowSymlinks
RewriteEngine on
RewriteRule ^(.*)-([0-9]+).html$ /test2.php?id=$1&titre=$2 [L]

dans le repertoire rewriting j'ai egalement un fichier test.php qui contient

<a href="2_voiture.html" >lien</a>

et qui(normalement) devrait me renvoyer vers ma page test2.php avec en parametre id=2&titre=voiture

et bien ca marche pas !

est ce que le fichier .htaccess doit obligatoirement etre a la racine du site ?
est ce que ma syntaxe est pas bonne (j'ai fait gaffe au / demandé par la conf specifique ovh)

please help me :)

merci d'avance à toute la communautée
a +
 

kimengumi

WRInaute discret
salut, dans ton lien, tu sépares tes 2 variables avec un _ et dans ton code url rewriting, tu les sépares avec -
et puis, tu as inversé les (.*) et ([0-9]+), en effet, le "2" doit correspondre à ([0-9]+) et le "voiture" doit correspondre à (.*)

Ce qui devrait donné corrigé :

RewriteRule ^([0-9]+)-(.*).html$ /test2.php?id=$1&titre=$2 [L]

avec le lien <a href="2-voiture.html">
 

matlibu

Nouveau WRInaute
exact !!!

merci : 2 grosse erreurs de debutant :) inattentif. bref j'ai corrige mais ca marche toujours pas !!

toujours l'erreur 404 ! est ce que le serveur prend bien en compte le fichier .htaccess dans un sous repertoire ?

deuxio, question subsidiaire (.*) signifie tous les caracteres donc je peux mettre

RewriteRule ^(.*)-(.*).html$ /test2.php?id=$1&titre=$2 [L]

si je veux pas me prendre la tete ?

bon je me creuse mais je pige pas la probleme ....
 

kimengumi

WRInaute discret
Es tu sûr que ta page /test2.php?id=2&titre=voiture existe bien ? Des fois c'est bête mais beaucoup de problèmes viennent de là...

Pour être sûr que le htaccess fonctionne bien, essaye de créer un accès restreint avec login+mot de passe dans ton htaccess + htpasswd. S'il te demande un mot de passe pour entrer sur ton site, c'est que ça fontionne.

Après, revient nous voir
 

kimengumi

WRInaute discret
Et puis, enlève le / juste avant test2.php?id=$1&titre=$2 :)

Mais laisse le ([0-9]+) tel qu'il est, ne le remplace pas par (.*)
 

matlibu

Nouveau WRInaute
:)

ma page test2.php existe bien

dans mon fichier test.php j'ai :

<a href="2_voiture.html" >lien</a>

<a href="test2.php?id=2&titre=voiture" >lien2</a>

le deuxieme lien fonctionne mais le premier erreur 404

quand au / juste devant, c'est un truc special de ovh (cf plusieurs topic + un guide ovh dessus)
mais par acquis de consience j'ai essaye sans et ca change rien du tout

j'ai essaye avec un htaccess mot de passe ca me bloque bien

QUESTION : est ce que le urlrewriting peut marcher dans seulement un repertoire comme j'essaye de faire (ca peut eliminer une piste deja ) ?

bon je cherche encore

vous tous qui lisez ce topic, je suis ouvert à toutes suggestions !

merci
 

kimengumi

WRInaute discret
n'oublie pas de pointer vers <a href="2-voiture.html" >lien</a> au lieu de pointer vers <a href="2_voiture.html" >lien</a>
 

matlibu

Nouveau WRInaute
oui , j'ai bien note

mais en fait j'ai change mon htaccess (je tenais à mes _ plutot que des tirets)

donc mon htaccess :

RewriteEngine on
RewriteRule ^([0-9]+)_(.*).html$ /test2.php?id=$1&titre=$2 [L]

donc mon lien est bon

...

je fais appel à tous les supers cerveaux de la planete
help me !!!!!!!!!!!!!!!!!
 

Pharmespace

WRInaute discret
Code:
RewriteEngine on
RewriteRule ^([0-9]+)_(.*).html$ /test2.php?id=$1&titre=$2 [L]

Moi je dirais de mettre un backslash devant le .html :
RewriteRule ^([0-9]+)_(.*)\.html$ /test2.php?id=$1&titre=$2 [L]
 

magic corp.

WRInaute occasionnel
Tu oublie de présiser le sous-répertoire dans ta règle
Code:
RewriteEngine on
RewriteRule ^([0-9]+)_(.*).html$ /rewriting/test2.php?id=$1&titre=$2 [L]

est ce que le fichier .htaccess doit obligatoirement etre a la racine du site ?
Non, tu le mettre dans ton sous-répertoire.

- Magic -
 

Discussions similaires

Haut