Hébergements Starter, Perso, Pro ou performance - [Résolu] Problème d'url rewriting sur serveur mutualisé
... / [Résolu] Problème d'url r...
BMPCreated with Sketch.BMPZIPCreated with Sketch.ZIPXLSCreated with Sketch.XLSTXTCreated with Sketch.TXTPPTCreated with Sketch.PPTPNGCreated with Sketch.PNGPDFCreated with Sketch.PDFJPGCreated with Sketch.JPGGIFCreated with Sketch.GIFDOCCreated with Sketch.DOC Error Created with Sketch.
Frage

[Résolu] Problème d'url rewriting sur serveur mutualisé

Von
Jérôme
Erstellungsdatum 2026-03-28 10:34:13 (edited on 2026-04-01 08:19:10) in Hébergements Starter, Perso, Pro ou performance

Bonjour,

Je rencontre un problème avec les règles de réécriture d'URL sur mon hébergement mutualisé (hébergement starter). 

J'ai ajouté la règle suivante dans mon fichier .htaccess :

RewriteRule ^article-sante-([^/]+)$ article-sante.php?sujet=$1 [L]

Cette règle fonctionne bien. Elle m'affiche bien "/article-sante.php?sujet=test" quand je tape dans la barre d'adresse "/article-sante-test".

Mais la règle ci dessous ne fonctionne pas (seul le tiret est remplacé par un slash): 

RewriteRule ^article-sante/([^/]+)$ article-sante.php?sujet=$1 [L]

Elle m'affiche juste "/article-sante.php" quand je met "/article-sante/test" , elle ne prend pas en compte le paramètre sujet (la variable $_GET est vide). 

Pouvez-vous m'aider à comprendre pourquoi et comment résoudre ce problème ?
Merci d'avance pour votre aide.


4 Antworten ( Latest reply on 2026-04-01 08:18:24 Von
Jérôme
)

Bonjour,

Dans la regexp [^/]+ je me demande si le ^ est réellement interprété comme un début de chaîne .

Quand tu dis: "Elle m'affiche juste "/article-sante.php" quand je met "/article-sante/test" " il n'affiche pas non plus "?sujet=" ??? dans ce cas il n'y a pas de match sur ce rewrite.

 

Bon, j'ai demandé de l'aide à l'IA, qui m'a fait tester plusieurs choses avant de trouver que le problème vient de MultiViews qui était activé.

J'ai ajouté

Options -MultiViews

# Gestion des URLs sans .php
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([^/]+)$ $1.php [L]

et là tout fonctionne.