Page 1 sur 1

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

Posté : 04 juin 2023, 13:42
par two3d
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à...

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

Posté : 05 juin 2023, 10:31
par @rthur
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() ? )

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

Posté : 05 juin 2023, 10:57
par two3d
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

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

Posté : 05 juin 2023, 12:38
par ynx
Peut-être essayer de définir le code http avec http_response_code :

<?php

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


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

Posté : 05 juin 2023, 12:52
par two3d
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-)

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

Posté : 05 juin 2023, 16:11
par two3d
Parfait, merci !