CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[PHP] récupérer adresse avant redirection .htaccess (err.404)

flash_2001
flash_2001
Niveau 10
31 janvier 2015 à 22:49:12

Bonjour,

Est-il possible de récupérer l'adresse vers laquelle un visiteur se dirigeait et qui l'a amené vers une page d'erreur 404 ?
$_SERVER["HTTP_REFERER"] pointe vers la dernière page fonctionnelle (donc ne donne pas l'adresse qui a envoyé vers 404)
$_SERVER['REQUEST_URI'] pointe vers la page 404

Pour faire plus simple imaginons que l'admin se plante dans l'écriture d'un lien d'une page (imaginons que nous sommes sur index.php pour faire simple) :
<a href="coucou2.php">
au lieu de
<a href="coucou1.php">
et que du coup la page redirige vers erreur404.php (grâce au .htaccess)

$_SERVER["HTTP_REFERER"] donnera index.php
$_SERVER['REQUEST_URI'] donnera erreur404.php
?????? donnera coucou2.php

Je souhaite récupérer : coucou2.php (le lien incriminé qui a renvoyé vers erreur404 grâce au .htaccess)

Merci

gromouton
gromouton
Niveau 6
01 février 2015 à 02:32:02

besoin de ton htaccess

normalement t'as qlq chose du genre pour récupérer la redirection
ErrorDocument 404 /error/erreur404.php
et non
ErrorDocument 404 http://monsite.com/error/erreur404.php

un peu de doc :
http://httpd.apache.org/docs/current/mod/core.html#errordocument

Message édité le 01 février 2015 à 02:36:45 par gromouton
flash_2001
flash_2001
Niveau 10
01 février 2015 à 16:47:47

ErrorDocument 404 /error/erreur404.php ne me récupèrerait pas le lien erronné mais redirigerait vers le fichier erreur404.php stocké dans un dossier error en cas d'erreur 404.

Idem pour la doc apache qui explique les différentes façon de faire des redirections mais n'explique pas comment récupérer le lien erroné qui a amené à une erreur 404.

Ou alors j'ai pas tout pigé :rire:

Message édité le 01 février 2015 à 16:48:25 par flash_2001
deepblue
deepblue
Niveau 16
01 février 2015 à 16:54:36

Passe en paramètre de ta page d'erreur la page qui a générée la 404.

flash_2001
flash_2001
Niveau 10
01 février 2015 à 16:57:46

Bonne idée !

Mais je fais ça comment du coup ?

gromouton
gromouton
Niveau 6
01 février 2015 à 23:45:52

Pour le htaccess je t'ai expliqué comme bien rediriger vers la page 404 avec une adresse RELATIVE , tu crées ce fichier avec le bon chemin que tu as indiqué dans le htaccess et dedans tu récupères l'url avec $_SERVER["REQUEST_URI"]

tiens moi au courant car tu n'as pas montré ton htaccess pour savoir si l'erreur venait de là

Message édité le 01 février 2015 à 23:48:50 par gromouton
gromouton
gromouton
Niveau 6
01 février 2015 à 23:56:13

Ps: pour moi c'est expliqué dans le lien que je t'ai donné :

Notez que lorsque vous spécifiez une directive ErrorDocument pointant vers une URL distante (c'est à dire tout ce qui commence par le préfixe http), le serveur HTTP Apache va envoyer une redirection au client afin de lui indiquer où trouver le document, même dans le cas où ce document se trouve sur le serveur local. Ceci a de nombreuses conséquences dont la plus importante réside dans le fait que le client ne recevra pas le code d'erreur original, mais au contraire un code de statut de redirection. Ceci peut en retour semer la confusion chez les robots web et divers clients qui tentent de déterminer la validité d'une URL en examinant le code de statut. De plus, si vous utilisez une URL distante avec ErrorDocument 401, le client ne saura pas qu'il doit demander un mot de passe à l'utilisateur car il ne recevra pas le code de statut 401.

C'est pourquoi, si vous utilisez une directive ErrorDocument 401, elle devra faire référence à un document par le biais d'un chemin local.

Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment