[RESOLU] header 410 php sur un fichier existant : htaccess n'affiche pas la page d'erreur définit

Avatar du membre
Mammouth du PHP | 1385 Messages

04 juin 2023, 13:42

Je tente d'appliquer un header 410 sur des pages de profils supprimées, j'ai donc définis un "ErrorDocument 410"

Ça fonctionne très bien sur pages réellement inexistantes mais pas quand je définis le header en PHP :

Voilà mon .htaccess :

Code : Tout sélectionner

Options -Indexes -MultiViews DirectoryIndex index.php RewriteEngine on ErrorDocument 410 /410.php
Mon fichier PHP :
<?php
header($_SERVER['SERVER_PROTOCOL'] . ' 410 Gone');
exit;
J'ai une page blanche, sans doute avec le "exit" PHP, est ce que je dois ajouter une redirection PHP vers la page 410.php, en dessous du "header(410)" ? C'est dommage de devoir en arriver là...

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9608 Messages

05 juin 2023, 10:31

L'explication, c'est que la directive ErrorDocument est exécutée par Apache si lui-même déclenche ce code d'erreur.

Par exemple si tu avais mis un ErrorDocument 404 mais que le fichier demandé existait, alors Apache n'aurait pas fait la redirection, même si dans le fichier existant tu dit de renvoyer en header un code d'erreur 404.

Du coup dans ton cas, au lieu du exit tu dois afficher ce que tu veux indiquer à l'utilisateur (par exemple en faisant un include() ? )
Quand tout le reste a échoué, lisez le mode d'emploi...

Avatar du membre
Mammouth du PHP | 1385 Messages

05 juin 2023, 10:57

OK, je comprends, merci.

Je me demandais si l'include serait considéré comme lui aussi 410, comme une ressource supprimée du coup ? #-o

ynx
Mammouth du PHP | 563 Messages

05 juin 2023, 12:38

Peut-être essayer de définir le code http avec http_response_code :

<?php

http_response_code(410);
include '410.php';


Avatar du membre
Mammouth du PHP | 1385 Messages

05 juin 2023, 12:52

Oui, en fait je me focalisais sur l'include de la page profil, pas sur la 410.php ^^

OK, je vais tester ça tout à l'heure ;)

Merci !

PS: bien vu le http_response_code, je ne connaissais pas 8-)

Avatar du membre
Mammouth du PHP | 1385 Messages

05 juin 2023, 16:11

Parfait, merci !