Я создаю фиктивный обработчик для файлов .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?
Если есть какая-либо дополнительная информация, пожалуйста, спросите.
Вы можете попробовать SetHandler вместо
<FilesMatch \.php$>
SetHandler helloworld
</FilesMatch>
SetHandler удалит любой ранее установленный обработчик. Чтобы сначала запустить опцию вашего обработчика, а затем запустить обработчик PHP по умолчанию, когда ваш обработчик вернет DECLINE, вам нужно сначала установить свой, а затем добавить PHP
<FilesMatch \.html$>
SetHandler helloworld .html
</FilesMatch>
<FilesMatch \.php$>
SetHandler helloworld .php
AddHandler php5-script .php
</FilesMatch>
Обратите внимание, что это приводит к очистке любых обработчиков, ранее настроенных для файлов .html.
Вы можете иметь только один обработчик для любого типа файла на запрос. Если вы всегда хотите, чтобы сначала выполнялся интерпретатор PHP, а затем — ваш обработчик, вы можете рассмотреть директиву AddOutputFilter.
Большинство фаз завершается первым модулем, который их обрабатывает; однако для регистрации, `исправлений ‘и проверки подлинности без доступа все обработчики всегда работают (исключая ошибку).
Вам необходимо перезагрузить сервер Apache после добавления обработчика.
Проверьте также, будет ли расширение фактически интерпретироваться сервером так, как вы хотите, чтобы оно работало. Вы можете проверить такую информацию у системного администратора вашего хостинг-провайдера. Многие системные администраторы отключают некоторые функции для повышения безопасности.