триггер 403 в php, так что он показывает ErrorDocument



Недавно я настроил пользовательские документы об ошибках для своего сервера.



Я начал со страницы 404, и это работает как шарм: файл не найден автоматически показывает указанный 404.PHP-страница.
Однако с 403 у меня возникли некоторые проблемы. Я настраиваю его точно так же, но получаю только чистую страницу. Он не показывает 403.php страница, как установлено в .htaccess документ.
Есть идеи?



Вот мой код:



.htaccess:



Options -Indexes
ErrorDocument 403 /403.php
ErrorDocument 404 /404.php


Php:



<?php 
header("HTTP/1.1 403 Unauthorized");
exit;
?>
668   2  
PHP

2 ответов:

Документ об ошибке, определенный в конфигурации сервера, загружается только тогда, когдасервер (Apache) обнаруживает ошибку 403.

Если вы заставляете ошибку через PHP, например, отправить код состояния 403, это происходит в PHP, а не в Apache.

Итак, если вы уже знаете , что сайт, который я хочу визуализировать, не будет работать из-за несанкционированного, зачем оставлять это на apache, что произойдет?

<?php 
header("HTTP/1.1 403 Unauthorized");
// either:
header("Location: /403.php");
// or:
include('403.php');
exit;
?>

Я начал с 404 страницы, и это работает как шарм:

Это ты - уверен?

У вас есть скрипт, отправляющий 404 и перенаправляющийся на 404.php? Или вы просто открыли несуществующий URI и были перенаправлены?

Для вашего сервера 403 страницы. (Перейдите на запрещенный URL-адрес на вашем сервере или на любую страницу 403, которая вам нравится)

Щелкните правой кнопкой мыши и выберите "Просмотр источника". Выберите все исходники и сохраните их в файл на вашем домене, например: http://domain.com/403.php

Теперь перейдите на вашу реальную запрещенную страницу (или запрещенную ситуацию в какой-то части вашего php) пример: http://domain.com/members/my_forbidden_page.php

Повторите этот код ниже перед любым выводом HTML или заголовком! (даже пробел заставит PHP отправить html / TEXT HTTP заголовок, и он не будет работать) код ниже должен быть вашей первой строкой!

<?php header('HTTP/1.0 403 Forbidden');
$contents = file_get_contents('/home/your_account/public_html/domain.com/403.php', TRUE);
exit($contents);

Я проверил и проверил с последними посетителями CPANEL, и это зарегистрировано как точное событие 403.

Comments

    Ничего не найдено.