rech de "?" dans url et renvoi de header

Nouveau WRInaute
Bonjour,
Mon index est un fichier php, il est donc possible d'accéder à mon site sous la forme -www.mon-site.com/index.php mais je souhaite que lorsque l'url -www.mon-site.com/index.php? ou -www.mon-site.com/? envoyer des headers 404 :
-> le caractère ? étant un caractère php, lorsque je fais un eregi du "?" ou avec un caractère d'échappement eregi "\?" si je test ensuite l'url avec un testeur de header tel que -http://www.web-sniffer.com le header-status d'apache est toujours 200...
Avez-vous une idée?
 
WRInaute passionné
Il suffit de tester la variable PHP REQUEST_URI.
Code:
if ($_SERVER["REQUEST_URI"] <> '/') {
  header("Status: 404 File not found", false, 404);
  exit;
}
Ou mieux :
Code:
if ($_SERVER["REQUEST_URI"] <> '/') {
  header("Status: 301 Moved Permanently", false, 301);
  header("Location: /");
  exit;
}
 
WRInaute accro
webmasterlamogere a dit:
Ou mieux :
Code:
if ($_SERVER["REQUEST_URI"] <> '/') {
  header("Status: 301 Moved Permanently", false, 301);
  header("Location: /");
  exit;
}


Le code sera plus portable si c'est /index.php dans le test de comparaison, cela permet par exemple de placer le code dans le header, sans avoir aucune incidence sur les autres pages du site.

Code:
if ($_SERVER["REQUEST_URI"] == '/index.php')
 
Discussions similaires
Haut