fausse url

WRInaute discret
Bonjour,
par exemple j'ai une URL du type
/page.php

si un petit malin tape
/page.php/nimportequoi ou /page.php/ ou /page.php?nimportequoi enfin bref que soit rajouter quelque chose apres l'url

j'aimerai que ca redirige soit
- vers un 404 ( ca me plait pas trop)
- soit vers page.php (plus souhaitable)
évidemment pour toutes les pages
j'ai aussi une section du site avec un repertoire
(/repertoire/page.php) donc meme genre de redirection avec un repertoire nommé repertoire

je n'utilise pas de cms ni de variables d'url en post ou get dans mon site

quelqu'un aurais une solution avec .htaccess ? parce que je cherche depuis un petit moment et je suis un noob en htaccess

Merci d'avance
 
WRInaute occasionnel
Pour le faire en une minute avec un 404, faire un .htaccess avec dedans :

Code:
<Files .htaccess>
order allow,deny
deny from all
</Files>

ErrorDocument 404 http://www.domaine.com/404.html

Mais c'est vrai que ce serait mieux, et plus précis, en modifiant page.php mais c'est aussi plus compliqué.
 
WRInaute discret
@elji
j'ai déjà mon 404 défini dans mon .htaccess . Apache considère ces URL comme valides (paramêtre d'url) et donc ne transmettra jamais une erreur 404.

UsagiYojimbo
si tu pouvais m'en dire un peu plus. Pas moyen avec htaccess de rediriger quand un slash est ajouté après .php ?
genre
^(.*)\.php/(.*)$ qui redirige vers $1\.php
 
WRInaute discret
Ok mais comme je rame (j'ai déjà essayé plusieurs truc avec une belle erreur 500) ta réponse ne m'aide pas vraiment
une solution serait plus appréciable que des commentaires
 
WRInaute accro
En fait je pense que tu as mal compris mon commentaire.

Parce qu'une règle ciblant .php/ permettra de résoudre

/page.php/nimportequoi
/page.php/

mais pas

/page.php?param=toto.

D'où l'intérêt de passer par le code :

-> tu récupère l'url via $_SERVER['REQUEST_URI']
-> tu vérifies (via ta base de donnée, via ce que tu sais de tes url) si la request uri est autorisée ou pas
-> si elle ne l'est pas, tu renvoies une entête 404
 
WRInaute discret
Résolu avant ton dernier message
via entête en php
explode sur le $_SERVER['REQUEST_URI'] avec comme délimiter .php
[0] me donne l'uri (sans le .php)
[1] me donne la suite après .php (si c'est le cas)
si [1] n'est pas vide redirection vers la page en cours header(location) en me servant de la valeur de [0] et en rajoutant .php
voila
 
Discussions similaires
Haut