Empecher d'afficher la page avec les paramètres

WRInaute accro
Hello

Bon je termine un url rewriting et j'ai un tit soucis.

-www.example.com/machin.php s'affiche bien en lieu et place de -www.example.com/trucmuche.php?machinchose=42

Mais

En affichant directement
-www.example.com/trucmuche.php?machinchose=42 (aucun lien n'existe sur le site quand meme) et bien ca ne redirige pas vers -www.example.com/machin.php (c'est logique dans un sens)

Et bien évidemment ca boucle quand je commence à bidouiller

Personne aurait une petite ligne de code sous la main pour empecher ca ?

Merci d'avance :)
 
WRInaute accro
screuscreu a dit:
Pas très claire ta question là ... tu as pas une ligne de code pour que l'on t'aide ?

bah non justement sinon je la mettrais :)

je vais faire plus simple

J'ai une page moche
-www.example.com?param=1

Je fais un joli url rewriting et je me retrouve avec un
-www.example.com/jolie-page.php

Mais... le problème... c'est que si j'affiche directement la page :
-www.example.com?param=1

et bien elle s'affichera... et moi je veux que -www.example.com?param=1 renvoit sur -www.example.com/jolie-page.php mais là... ca boucle

C plus clair ?
 
WRInaute accro
ah mais c ce que j'ai fais... d'autant plus que la page avec paramètres n'existait pas avant... donc il est en théorie pas pret de la trouver Google... mais j'aimerais bien quand meme qu'elle ne soit plus "visible" du tout
 
WRInaute accro
screuscreu a dit:
Comment pourraient elles être visibles si il n'y a pas de lien dessus ? Les gens sont devins ?

les gens non... mais quand on fait des tests, bah Google peut trouver l'url via les AdSenses, via la Google Bar, via un bug htacess temporaire... bref je serais pas étonné qu'il trouve :)
 
WRInaute impliqué
Il faut pas prendre en compte les bugs htaccess car en théorie tout le monde fait un boulot parfait ;)

Sinon, pour les adsenses je sais pas, il y a pas moyen de lui filer ton url réécrite ?


Tu n'as pas un lien à aller voir, je suis curieux ;)
 
WRInaute accro
Code:
if($_SERVER['REQUEST_URI'] != "/monurlreecrite.php")
   {
   header("Status: 301 Moved Permanently", false, 301);
   header("Location: http://".$_SERVER['HTTP_HOST']."/monurlreecrite.php");
   exit;
      die("Redirection");
   }
 
WRInaute accro
en quoi c'est violant ? Justement s'il n'y a aucun problème d'url, il se passe rien ^^ Donc, ça ne s'exécutera jamais partout en même temps !
 
WRInaute accro
Pas mieux que Yoyos. Il n'y a rien de violent là-dedans, c'est la manière habituelle de procéder pour que les url non réécrites ne soient plus accessibles de manière directe.
 
WRInaute accro
bon vais travailler ca tout à l'heure... ca a pas marché du premier coup alors ca demande de remettre les mains dans le paté

non YoyoS... la redirection marche sans pb mais je n'ai jamais su empecher que les gens aillent sur la page avec les paramètres
 
WRInaute accro
Ah oui si pour le moment tu n'avais que mis en place l'url réécrite, c'est normal que les pages non réécrites soient encore accessibles. Il faut juste faire le test en haut de toutes les pages pour vérifier que l'url qui affiche la page est bien l'url réécrite, et rediriger le cas échéant sur celle-ci (soit le bout de code que donne YoyoS).
 
WRInaute accro
c un peu plus compliqué que ca :) en fait l'url d'avant est bien redirigé... c juste l'url bidouillé avec les paramètres que je peux encore afficher, mais je modifierais ca cette nuit
 
WRInaute accro
Normalement, l'utilisateur ne peut voir que l'url finale si le code est bien adapté. Il doit rediriger toute tentative de modification de l'url. C'est simple, une page est accessible de plein de façons différentes, avec paramètres ou non, selon le nombre de paramètres, selon la casse, etc ...

Si tu vérifies tout dans le if ($_REQUEST['url'] != "laseuleestuniqueurl.php")

tu ne devrais plus avoir jamais aucun souci :) Bien sur, il faut que ça soit des urls valides et pas en 404, que les vieilles urls avec des paramètres pourris continuent de pointer vers la page en question. Il faut donc continuer à interpréter d'anciennes règles htaccess par exemple pour que toutes les différentes façons d'accéder à l'url fonctionnent et qu'elles puissent toutes être redirigées, peut importe leur handicap :p

Et si vraiment il y a de vieux déchets impossibles à interpréter par htaccess, faire une règle spéciale pour cette url ^^
 
WRInaute passionné
il faut ajouter un paramètre bidon dans la réécriture pour éviter que ca boucle. La redirection vérifie que le paramètre n'est pas présent dans la condition RewriteCond. Tu as un exemple ici -http://www.urlrewriting.fr/article-08,07,17,Eti@-Redirection-9.html
 
Discussions similaires
Haut