Nouveau WRInaute
Bonjour tout le monde,

Je viens vers vous car je rencontre un ou deux soucis que je ne m'explique pas avec une règle de réécriture. Ceci dit, je suis un bon gros débutant en la matière, alors je ne m'explique pas grand chose ^^ (mais ne demande qu'à comprendre).

Je cherche à réécrire proprement une URL de la forme: www.monsite.fr/dossier/page.php?p=nom
Vers la forme suivante : www.monsite.fr/dossier/nom.php
Tout simplement.

J'ai donc pondu la règle suivante dans un .htaccess situé à la racine dudit dossier :
Code:
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^([a-zA-Z0-9]+)\.php$ /dossier/page.php?p=$1 [L]

Qui marche bien, mais qui présente deux problèmes jusqu'ici insolvables pour moi :
1/ Lorsque je veux accéder à l'adresse /dossier/ , la règle est prise en compte et je ne peux donc pas afficher la page index.php correspondante à la racine de ce dossier (erreur 404).
2. Si le nom est d'un seul tenant, tout va bien. Mais si le nom est de la forme "nom-composé", alors ça se complique.

Du coup j'ai essayé de rajouter le tiret dans ma règle de réécriture, de cette façon :
Code:
RewriteRule ^([a-zA-Z0-9-]+)\.php$ /dossier/page.php?p=$1 [L]
La syntaxe est validée sur tous les testeurs de regex que j'ai pu faire, mais me provoque une erreur 500...

Y aurait-il des connaisseurs dans le coin, pour m'expliquer que mon problème est en fait d'une simplicité enfantine ? :(
 
Nouveau WRInaute
RewriteRule (.*) = erreur 500

Bonjour,
Je n'édite pas le précédent message parce que je crois que cet ajout peut être important.

Si j'écris ma règle de cette façon :
Code:
RewriteRule ^(.*)\.php$ /dossier/source.php?c=$1 [L]
J'obtiens une erreur 500 pour tout le répertoire "/dossier/".
(Alors que je souhaiterais accéder à /dossier/cequejeveux.php)

Par contre, si je m'amuse à faire ceci :
Code:
RewriteRule ^salut-coucou-(.*)\.php$ /dossier/source.php?c=$1 [L]
Et que je tente d'accéder à /dossier/salut-coucou-toutcequejeveux.php
Là, aucun problème, ça marche parfaitement.

Alors je me dis que ça peut être :
- ce qu'on appelle "une erreur de syntaxe à la con",
- un conflit avec d'autres règles (mais cette nuit j'ai essayé avec un fichier .htaccess refait à neuf, et sauf erreur de ma part, même résultat).
- Un souci chez l'hébergeur ? (OVH - mutualisé).

Dit comme ça, est-ce que quelqu'un arrive à y voir plus clair svp ?
 
Discussions similaires
Haut