Вопрос или проблема
Я довольно нов в WP/PHP и пытаюсь удалить заголовок ответа сервера в functions.php. Я пробовал использовать что-то вроде этого, но это не работает:
add_filter('wp_headers', function($headers) {
unset($headers['server']);
return $headers;
});
Не знаю, что я делаю не так.
Спасибо
Смотрите эту тему:
https://stackoverflow.com/questions/35360516/cant-remove-server-apache-header
Решение, которое сработало для меня, было “Запустить Apache за другим веб-сервером, который позволяет изменить это поле.”
Ответ или решение
Чтобы удалить заголовок ответа сервера в WordPress, необходимо учесть, что метод, который вы использовали, не будет работать, поскольку заголовок "Server" задается веб-сервером (например, Apache или Nginx) и не является частью заголовков, которые WordPress может модифицировать через фильтры.
Хотя вы не можете удалить этот заголовок через functions.php
, есть другие методы, которые можно использовать в зависимости от вашего веб-сервера. Вот несколько способов, как можно это сделать:
Удаление заголовка на сервере Apache
Если вы используете Apache, вы можете использовать файл .htaccess
, чтобы удалить заголовок Server
, добавив следующую строку:
Header unset Server
Убедитесь, что у вас подключен модуль mod_headers
. Для этого добавьте в файл конфигурации Apache:
LoadModule headers_module modules/mod_headers.so
Удаление заголовка на сервере Nginx
Если вы используете Nginx, вы можете удалить заголовок Server
с помощью следующей строки в конфигурационном файле:
server {
...
more_set_headers 'Server: ';
}
Для этого вам потребуется установить модуль ngx_http_headers_more_filter_module
, поскольку стандартный Nginx не поддерживает эту функцию.
Использование стороннего прокси-сервера
Другим подходом, упомянутым в вашем вопросе, является использование прокси-сервера перед Apache или Nginx, который позволяет изменять поля заголовков. Например, используя Nginx как обратный прокси перед Apache, вы можете легко изменять или удалять заголовки.
Заключение
К сожалению, изменения в functions.php
не позволят вам удалить заголовок "Server", так как этот заголовок устанавливается на уровне сервера, а не приложения. Попробуйте один из вышеперечисленных методов в зависимости от вашего веб-сервера, и вы сможете удалить этот заголовок успешно.