AddHandler не работает для файлов .php — Apache 2.4

Я создаю фиктивный обработчик для файлов .php и .html, который называется helloworld, Обработчик содержит это:

static int helloworld_handler(request_rec *r){
ap_rprintf(r, "hello world!");
return OK;
}

Я получил это в apache2.conf:

<Directory /var/www/html>
AddHandler helloworld .php .html
</Directory>

Обработчик «helloworld» работает для файлов .html, но не работает для файлов .php. Я думаю, что это в основном потому, что обработчик php по умолчанию переопределяет обработчик helloworld для файлов .php. Как заставить обработчик helloworld работать с файлами .php?

Если есть какая-либо дополнительная информация, пожалуйста, спросите.

8

Решение

Вы можете попробовать SetHandler вместо

<FilesMatch \.php$>
SetHandler helloworld
</FilesMatch>
4

Другие решения

SetHandler удалит любой ранее установленный обработчик. Чтобы сначала запустить опцию вашего обработчика, а затем запустить обработчик PHP по умолчанию, когда ваш обработчик вернет DECLINE, вам нужно сначала установить свой, а затем добавить PHP

<FilesMatch \.html$>
SetHandler helloworld .html
</FilesMatch>
<FilesMatch \.php$>
SetHandler helloworld .php
AddHandler php5-script .php
</FilesMatch>

Обратите внимание, что это приводит к очистке любых обработчиков, ранее настроенных для файлов .html.

Вы можете иметь только один обработчик для любого типа файла на запрос. Если вы всегда хотите, чтобы сначала выполнялся интерпретатор PHP, а затем — ваш обработчик, вы можете рассмотреть директиву AddOutputFilter.

Большинство фаз завершается первым модулем, который их обрабатывает; однако для регистрации, `исправлений ‘и проверки подлинности без доступа все обработчики всегда работают (исключая ошибку).

Справочник по API Apache

AddOutputFilter документы

0

Вам необходимо перезагрузить сервер Apache после добавления обработчика.

Проверьте также, будет ли расширение фактически интерпретироваться сервером так, как вы хотите, чтобы оно работало. Вы можете проверить такую ​​информацию у системного администратора вашего хостинг-провайдера. Многие системные администраторы отключают некоторые функции для повышения безопасности.

-3