Comment attraper l’erreur 403 d’Apache dans PHP / Kohana?

Mon site est en cours d’exécution sur Kohana v3, et j’ai configuré une page d’erreur personnalisée comme ci-dessous dans bootstrap.php

try { // Attempt to execute the response $request->execute(); } catch (Exception $e) { .... error page re-direct. } 

Cela fonctionne très bien avec l’erreur 404.

J’ai également des dossiers auxquels on ne peut pas accéder directement, mais ils doivent être situés sous la racine www. Je mets le .htaccess pour protéger ces dossiers

 # nobody can access this folder from Browser Deny from all 

Lorsque l’utilisateur saisit l’URL dans le navigateur pour accéder aux fichiers sous ce dossier, une erreur Apache 403 s’affiche en texte brut comme ceci:

Interdit

Vous n’êtes pas autorisé à accéder à / private_folder sur ce serveur.

Je veux personnaliser cette erreur et la gérer dans Kohana. Cependant, je trouve qu’Apache contrôle complètement l’erreur 403 et n’appelle même pas l’index.php dans cette situation.

Une idée pour le résoudre?

Au lieu d’utiliser .htaccess pour verrouiller cette zone, vous pouvez le faire en code. La fonction d’en-tête de PHP pourrait être utilisée pour envoyer le statut 403.

Une autre approche consisterait à configurer un document d’erreur personnalisé pour les erreurs 403 dans Apache, et à indiquer un script pour gérer l’erreur. Reportez-vous à la documentation ErrorDocument sur la façon de procéder, mais ce serait quelque chose comme ça:

 ErrorDocument 403 /custom_403_handler.php