probleme URL Rewriting htaccess

Eléphant du PHP | 82 Messages

01 déc. 2017, 18:10

Bonjour
j'utilise sur mon site les url rewriting avec un htacess ainsi :

Code : Tout sélectionner

RewriteEngine On RewriteBase / RewriteRule ^salon.*-([0-9]+)\.htm$ /salon-detail.php?id=$1 [L] RewriteRule ^.*-([0-9]+)\.htm$ /content.php?id=$1 [L]
Comme vous pouvez le voir, je souhaite m'en servir de 2 façons différentes :
La façon classique, qui fonctionne nickel, avec :
RewriteRule ^.*-([0-9]+)\.htm$ /content.php?id=$1 [L]
pour pouvoir interpreter une url de la forme :
www.monsite.fr/contenu.php?id=12 avec une url www.monsite.fr/sujetprecis-12.htm

Mais aussi (et c'est là que ça pose probleme) une 2eme façon avec :
RewriteRule ^salon.*-([0-9]+)\.htm$ /salon-detail.php?id=$1 [L]
qui serait sensé interpretter l'url de la forme :
www.monsite.fr/salon_details.php?id=18 avec une url www.monsite.fr/salon.nomdusalon-18.htm

Dans les faits, cela fonctionne presque, car si je tape :
www.monsite.fr/salon.nomdusalon-18.htm
je suis redirigé vers l'url finale, mais visible :
www.monsite.fr/salon_details.php?id=18

J'aimerai juste que l'url ne soit pas visible et reste bien au final :
www.monsite.fr/salon.nomdusalon-18.htm

Je ne sais pas ce qui m'échappe...
merci de votre aide

JP
si tu as un soucis en informatique, dis toi bien que quelqu'un d'autre l'a eu avant toi

Eléphant du PHP | 82 Messages

04 déc. 2017, 10:18

un petit up ?
si tu as un soucis en informatique, dis toi bien que quelqu'un d'autre l'a eu avant toi

Eléphant du PHP | 82 Messages

05 déc. 2017, 15:19

salut à tous
est ce que ce que je demande est mal expliqué ou trop tordu ?
je suis surpris de n'avoir aucun commentaire...
si tu as un soucis en informatique, dis toi bien que quelqu'un d'autre l'a eu avant toi

Avatar de l’utilisateur
Administrateur PHPfrance
Administrateur PHPfrance | 7420 Messages

05 déc. 2017, 18:21

Je pense + simplement que les url rewriting c'est toujours un peu tordu donc c'est difficile de répondre sans avoir de quoi tester.
Repart d'un exemple simple et fonctionnel que tu peux trouver sur le web et personnalise le ensuite progressivement avec tes infos pour voir à quel moment ça coince.
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 82 Messages

05 déc. 2017, 18:38

mon soucis c'est la cohabitation entre 2 types d'url rewriting...
ce que j'ai appelé la façon classique, je m'en sers souvent, cela marche sans probleme.

Ce que je cherche, c'est un moyen d'appliquer une regle différente, avec un détecteur, pour pouvoir les faire fonctionner les 2 en meme temps...
Mais c'est vrai que s'il n'y a pas de spécialiste dans ce domaine ici, je ne suis peut etre pas sur le bon forum...
si tu as un soucis en informatique, dis toi bien que quelqu'un d'autre l'a eu avant toi

ViPHP
ViPHP | 5885 Messages

06 déc. 2017, 01:05

Bonjour,

Avec les informations que tu donnes, tout ce que je peux dire est que, à ma connaissance, ce n'est pas sensé être "visible". Si c'est "visible", c'est qu'il y a une directive qui a provoqué une redirection vers ton URL.

Selon la documentation du mod_rewrite, et mes souvenirs, il y a une redirection dans 2 cas :
* Lorsque la cible de la réécriture est une URL complète (http://www.example.net/test/)
* Lorsque le flag [R] est spécifié
Dans les autres cas, la redirection est transparente.

Il faut donc regarder s'il n'y a pas d'autres directives de réécriture ou de redirection dans la configuration, ou si ce ne serait même pas le code PHP en lui même qui ferait la redirection (maîtrises-tu le code PHP ou bien est-ce une application tierce ?).

Toujours est-il que nous même trouvons rarement les erreurs juste en voyant quelques lignes ! (sauf si l'erreur est vraiment évidente). C'est pour cela que je te suggèrerais d'activer les logs du module de réécriture pour que tu puisses suivre le processus de réécriture :
* Pour Apache 2.4 : LogLevel rewrite:trace2 (voir documentation d'apache pour l'utilisation de la directive LogLevel)
* Pour une version antérieure : RewriteLog "/var/log/apache/rewrite.log"

Cordialement