[Résolu] Rewriting OVH problème avec un slash

WRInaute discret
Bonjour,

Je cherche à faire un rewrite sur mon site.

Je souhaiterais que l'adresse : http://www.example.com/techniques/aaa-bbb-1
redirige vers : http://www.example.com/techniques.php?id=1

J'ai donc crée mon .htaccess de cette manière :
Code:
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^techniques/[a-zA-Z0-9-]-([0-9]+)$ techniques.php?id=$1 [L]

Mais cela ne marche pas.
Après quelques tests, je me suis apperçu que c'était le slash de
^techniques/[a-zA-Z0-9-]-([0-9]+)$
qui me bloquais.

Je solicite donc votre point de vu sur la question...

D'avance merci.

EDIT : Problème résolu.
 
WRInaute occasionnel
Moi j'aurais plutôt mis :
Code:
RewriteRule ^techniques/([a-zA-Z0-9-])-([0-9]+)$ /techniques.php?id=$2&nom_technique=$1 [L]
Si technique.php est à la racine de ton site.
Et je récupère le nom associé à l'id pour tester et éviter le duplicate content, en php :
Code:
//on recupere le nom de la technique ne base de données grace à l'id passé en GET, et on controle le nom de la technique
if($_GET['nom_technique']!=$nom_technique)
{
header('Status: 301 Moved Permanently', true, 301);
header('Location: 'la_page_qui_va_bien_de_ton_site');
}
Ca évite que
-http://www.site.com/techniques/1-alpha
-http://www.site.com/techniques/1-beta
pointent vers la même page

Bonne journée.

Edit : je pense aussi que le problème vient de la position du symbole $ dans ta règle.
 
WRInaute discret
Au temps pour moi, pour le $,
c'est une erreur lors de la recopie.

Je vais essayer ce que tu me proposer, et je reviens.

Edit: J'ai modifié le premier message pour remettre le $ comme il était.
 
WRInaute discret
Bon, alors j'ai essayé, comme je le pensais, ça ne marche pas :-(

Le truc c'est que il ne traite même pas la redirection.

Des que je met un slash, plus rien ne marche !!!

Cela semble spécifique à OVH.
 
WRInaute occasionnel
La règle que je te donne je l'utilise présentement chez OVH.
De quel hébergement s'agit-il? Un hébergement dédié, mutualisé?
Pourrais-tu ajouter cette règle :
Code:
RewriteRule   ^nexistepas.html$   trouve.html
RewriteRule   ^/test/nexistepas.html$   trouve.html
Tu crées un fichier trouve.html à la racine de ton site.
Et ensuites, dans un navigateur, tu tapes :
-http://www.ladressedetonsite.com/nexistepas.html
et
-http://www.ladressedetonsite.com/test/nexistepas.html
Qu'obtiens-tu?
Es-tu en train de tester les ré-écritures sur une url du type : http://nsxxx.ovh.net/~nom_user/ ?
 
WRInaute discret
J'ai testé, et a chaque fois j'ai une erreur 500.

Le soucis vient du fait que lorsque j'envoie

repertoire/

Le rewrite par défaut va chercher

repertoire.php

Si une page qui porte le même nom existe ?!

Est-ce normal ?
Qu'a configuré OVH ?
Pourquoi ?
 
WRInaute occasionnel
Quels sont les droits sur ton fichier htaccess (le CHMOD dans ton client FTP).
Pourrais-tu faire un copier/coller intégral de ton .htaccess?
Avais-tu un blog, CMS, forum ou quelque chose d'autre d'installer avant?
 
WRInaute discret
Code:
Options +FollowSymlinks
RewriteEngine on
RewriteRule [a-zA-Z0-9-]+-([0-9]+)$ techniques.php?id=$1 [L]

Le fichier .htaccess à les droits 644.
 
WRInaute occasionnel
Il y a des erreurs dans tes règles, pourrais-tu copier/coller ces lignes dans ton fichier (en remplaçant les lignes existantes) :
Code:
Options +FollowSymlinks
RewriteEngine on
RewriteRule ([a-zA-Z0-9-]+)-([0-9]+)$ techniques.php?id=$1 [L]
Ceci si tu es directement en train de tester avec un vrai nom de domaine.
Si tu testes directement sur un sous-domaine de ovh (ex : http://nsxxx.ovh.net/~nom_quelconque/), il faut utiliser ce code :
Code:
Options +FollowSymlinks
RewriteEngine on
RewriteRule ([a-zA-Z0-9-]+)-([0-9]+)$ /~nom_quelconque/techniques.php?id=$1 [L]

Dans l'attente de ton retour.
 
Discussions similaires
Haut