Aide sur htaccess

WRInaute occasionnel
bonjour, je voudrais réécrire des url de cette manière :

ht*p://w*w.harpebudin.com/partitions/partition.php?numero=2564

en

ht*p://w*w.harpebudin.com/partitions/partition-2564.html

Pour ça, j'ai écris dans mon htaccess :

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

Je pense faire une erreur (j'en suis même sur puisque cela ne fonctionne pas), savez vous d'où ça vient et ce que je dois changer ? Je suis chez OVH (plan 240).

Merci d'avance si vous avez la solution...

Alex.
 
WRInaute occasionnel
Je dirais ...
Code:
RewriteEngine on
RewriteRule ^partition-([0-9]+)\.html$ /partitions/partition.php?numero=$1 [L]
A verifier.

- Magic -
 
WRInaute occasionnel
Dans le répertoire partitions :

Code:
RewriteEngine on
RewriteBase /partitions

RewriteRule ^/partitions-(\d+)\.html partitions.php?numero=$1 [L]

si ça ne fonctionne pas, essaye en remplaçant ^/partitions par ^partitions (mais je crois que chez ovh, faut le /
 
WRInaute occasionnel
rien ne fonctionne pour le moment, je ne comprends pas d'où vient l'erreur... J'essaye dans tous les sens, avec ou sans / mais ça ne fait rien ou des fois une erreur dans le répertoire /partitions

J'ai tenté comme ça :
RewriteEngine on
RewriteBase /partitions

RewriteRule ^/partitions-(\d+)\.html partitions.php?numero=$1 [L]

puis :
RewriteEngine on
RewriteBase /partitions

RewriteRule ^/partition-(\d+)\.html partition.php?numero=$1 [L]

puis plein d'autres, je trouve pas, y a-t-il un temps pour que ovh le prenne en compte ?
 
Nouveau WRInaute
Il me semble que modifier le .htaccess ne suffit pas.
Il faut aussi modifier le code des pages.
Le .htaccess ne fait que traduire l'URL.

Le code .php de tes pages transforme l'URL long en URL court, mais cet URL reste inconnu pour la BDD si le .htaccess ne le retraduisait pas dans l'autre sens.
 
WRInaute occasionnel
magic corp. a dit:
Dans quel rep place tu ton .htaccess ? à la racine ou dans /partitions/ ?

J'ai essayé les deux, mais cela ne fonctionne ni dans l'un ni dans l'autre...

Le code .php de tes pages transforme l'URL long en URL court, mais cet URL reste inconnu pour la BDD si le .htaccess ne le retraduisait pas dans l'autre sens.

Je comprends ce que tu veux dire, mais comment y remedier ?
 
WRInaute occasionnel
ça fait un peu flood, mais je butte encore sur une petite règle.

Un ancien fichier nommé Occasionn'existe plus, je le redirige donc de la manière suivante :


Le problème, c'est que google a des pages indexées qui se finissent comme ça : /Occasion/Occ%20camac%2047.php

donc le /Occ%20camac%2047.php s'ajoute à la fin de la nouvelle url. Comment puis-je lui dire de renvoyer toutes les pages du dossier /Occasion vers une seule page (occasions.php) ?
 
WRInaute impliqué
Code:
RewriteEngine on
RewriteRule ^partitions-([0-9]+)\.html /partitions/partitions.php?numero=$1 [L]

Pour la première règle...

Pour la deuxième:
Code:
RedirectMatch permanent ^/Occasion/.*$ ttp://www.harpebudin.com/harpes/occasions.php
 
WRInaute occasionnel
Impecable pour la deuxième règle, par contre pour la première, ça ne fonctionne toujours pas...
J'ai essayer dans la racine et dans le répertoire.
Le fait d'avoior déjà un htaccess dans la racine peut il géner ? Je vous montre ce que j'ai mis dedans pour le moment :

ErrorDocument 401 /Harpe-erreur/404.html
ErrorDocument 403 /Harpe-erreur/404.html
ErrorDocument 404 /Harpe-erreur/404.html
ErrorDocument 500 /Harpe-erreur/404.html
Redirect permanent /forum_harpe/ http://w*w.harpebudin.com/forum/
RedirectMatch permanent ^/Occasion/.*$ http://w*w.harpebudin.com/harpes/occasions.php
 
WRInaute occasionnel
Bizarrement, ça change toujours rien, pas d'erreur mais toujours les mêmes url...
Je l'ai rentré comme ça :
RewriteEngine on
RewriteRule ^partitions/partition-([0-9]+)\.html /partitions/partition.php?numero=$1 [L]

Sans les (s) à /partition.php, a la racine du site puis dans le répertoire, rien ne change...
 
WRInaute impliqué
Attends: tu as une erreur 404?

et fini ta chaine test par un $ ( ^........$ /url )
Où se trouve ton .htaccess ?
as tu déjà réussi à utiliser le mod_rewrite?
 
WRInaute occasionnel
correiaj a dit:
Attends: tu as une erreur 404?
Non, il n'y a pas de 404, mais les url restent les mêmes

et fini ta chaine test par un $ ( ^........$ /url )
Je vais essayer tout de suite ok

Où se trouve ton .htaccess ?
J'ai testé en le mettant à la racine du site puis dans le répertoire "partitions"

as tu déjà réussi à utiliser le mod_rewrite?
Non, jamais, c'est la première fois.
 
WRInaute impliqué
Tu penses quand même pas que les URL vont se changer par l´opération du saint esprit???
Il faut que tu les changes dans ton code. Puis le mod_rewrite te permet de faire la correspondance entre les url de ton code qui ne correspondent d´ordinaire à aucun fichier, au bon fichier.
 
WRInaute occasionnel
Pour compléter ce que dis correiaj.

Configurer un .htaccess n'est que la moitié de ce que tu dois faire pour mettre en place l'URL rewriting.

Si tu veux que des URLs du style
-http://www.example.com/index.php?var1=truc&var2=pwet
soient ré-écrites ainsi:
-http://www.examples.com/var1/var2

Il faut, tout d'abord que tes scripts, lorsqu'ils affichent des liens à l'utilisateur, les affichent au format ré-écrits.

C'est seulement lorsque l'utilisateur cliquera sur un lien ré-écrit, que le .htaccess rentrera en fonction pour retransformer ça en internet en index.php?var1=truc&var2=pwet, de façon transparente pour l'utilisateur

Si tu ne fais que créer un .htaccess, tu pourras taper dans ta barre d'adresse ceci :
-http://www.examples.com/var1/var2
et ça fonctionnera, MAIS les pages qui s'afficheront à partir de là utiliseront le système d'URLs non ré-écrits, et tu perdras le bénéfice de la ré-écriture puisque nulle part Google et autres moteurs de recherches ne trouveront de trace écrite de tes lien ré-écrits.

J'espère avoir été clair.

Ps: si c'est déjà ce que tu fais et que l'URL rewriting ne fonctionne pas, je t'encourage à essayer une règle tout con, genre
RewriteRule ^toto$ tata [R,L]

et aller sur ton site avec -http://www.example.com/toto
comme j'ai mis le [R], ça devrait t'afficher dans la barre d'adresse : http://www.example.com/tata
Si ça ne le fait pas, alors y'a effectivement surement un problème (essaye un coup avec RewriteRule ^/toto$ tata [R,L] ceci dit, avec le '/')
 
WRInaute occasionnel
Merci, c'est beaucoup plus clair, et comme je l'avais lu dans d'autres posts, en débutant, on comprend le problème à l'envers, je vais faire tout ces tests et je vous tiends au courant.

Encore merci,

Alex.
 
WRInaute occasionnel
Génial, ça marche et en plus [mode blond] je commence à comprendre[/mode blond] Enfin... ch'u pas pret d'en faire mon metier hein ?

encore un petit truc si c'est pas abuser... pour ce type d'url, je devrais mettre quoi dans le htaccess ?

/partitions/partitions.php?mot=celtique&type_acces=1\"

Si je veux :

/partitions/partitions-lemottapé.html

Merci..
 
Discussions similaires
Haut