Рейтинг:0

Заголовки, установленные с помощью модулей mod_headers в apache, полностью игнорируются.

флаг th

Поэтому я пытаюсь выяснить, могу ли я установить заголовки ответов, настроив их в Apache.

Я использую тестирование Debian, если это имеет значение.

Мой веб-сервер работает, и я использую его для нескольких веб-сайтов, которые разрабатываю. Так что теперь все, что я хочу сделать, это установить заголовок, чтобы увидеть, работает ли он.

Это то, что я изменил в своем apache.conf

<Directory /home/web>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
        Header set myHeader "Hello Header World"
</Directory>

Вот как выглядит файл конфигурации моего хоста в /etc/apache2/sites-available/000-default.conf:

<Виртуальный хост *:80>
        # Директива ServerName устанавливает схему запроса, имя хоста и порт, которые
        # сервер использует для идентификации себя. Это используется при создании
        # URL-адреса перенаправления. В контексте виртуальных хостов ServerName
        # указывает, какое имя хоста должно отображаться в заголовке Host: запроса, чтобы
        # соответствует этому виртуальному хосту. Для виртуального хоста по умолчанию (этот файл) это
        # значение не имеет решающего значения, так как оно все равно используется в качестве хоста последней инстанции.
        # Тем не менее, вы должны явно установить его для любого последующего виртуального хоста.
        #ServerName www.example.com

        Веб-мастер администратора сервера@localhost
        DocumentRoot /home/web

        Сопоставление псевдонимов ^/vmapi/(.*)$ /home/web/vmapi/api_receiver.php
        AliasMatch ^/inherentvalue/api/(.*)$ /home/web/inherentvalue/api/api.php

        # Доступные уровни логов: trace8, ..., trace1, debug, info, note, warn,
        # ошибка, крит, оповещение, эмердж.
        # Также можно настроить уровень логирования для конкретного
        # модули, например.
        # Информация об уровне журнала ssl: предупреждение

        Журнал ошибок ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log вместе

        В заголовке указано местоположение "хуансито"
        Набор заголовков Местоположение "pedrito"
        Заголовок установил MyHeader «Привет, Джо. Apache потребовалось %D микросекунд, чтобы обработать этот запрос».

        # Для большинства конфигурационных файлов из conf-available/, которые
        # включено или отключено на глобальном уровне, можно
        # включить строку только для одного конкретного виртуального хоста. Например
        # следующая строка включает конфигурацию CGI только для этого хоста
        # после глобального отключения с помощью "a2disconf".
        # Включить conf-available/serve-cgi-bin.conf
</ виртуальный хост>

# vim: синтаксис=apache ts=4 sw=4 sts=4 sr noet

Псевдоним для другого проекта, над которым я работаю.

Также вывод apache2ctl -M выглядит так:

Загруженные модули:
 core_module (статический)
 so_module (статический)
 watchdog_module (статический)
 http_module (статический)
 log_config_module (статический)
 logio_module (статический)
 version_module (статический)
 unixd_module (статический)
 access_compat_module (общий)
 alias_module (общий)
 auth_basic_module (общий)
 authn_core_module (общий)
 authn_file_module (общий)
 authz_core_module (общий)
 authz_host_module (общий)
 authz_user_module (общий)
 autoindex_module (общий)
 deflate_module (общий)
 dir_module (общий)
 env_module (общий)
 filter_module (общий)
 headers_module (общий) <-- Включен.
 mime_module (общий)
 mpm_prefork_module (общий)
 модуль переговоров (общий)
 php_module (общий)
 reqtimeout_module (общий)
 rewrite_module (общий)
 setenvif_module (общий)
 status_module (общий)

Итак, я пробую следующую команду:

curl -i -s -k -v -X ПОЛУЧИТЬ "http://localhost/vmportal/css"

И результат таков:

HTTP/1.1 301 перемещен навсегда
Дата: ср, 24 ноября 2021 г., 06:32:01 по Гринвичу
Сервер: Apache/2.4.48 (Debian)
Расположение: http://localhost/vmportal/css/
Длина содержимого: 313
Тип содержимого: текст/html; кодировка = iso-8859-1

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><заголовок>
<title>301 перемещен навсегда</title>
</голова><тело>
<h1>Перемещено навсегда</h1>
<p>Документ перемещен <a href="http://localhost/vmportal/css/">сюда</a>.</p>
<час>
<address>Сервер Apache/2.4.48 (Debian) на локальном хосте, порт 80</address>
</тело></html>

Разве я не должен видеть ЛЮБОЙ из заголовков, которые я установил в ответе?

Может ли кто-нибудь сказать мне, что я могу делать неправильно? Или в чем может быть проблема? Или хотя бы как его отлаживать? (В журналах ошибок или журналах доступа ничего нет, если вам интересно).

digijay avatar
флаг mx
Вы получите ответ http 301, попробуйте снова ввести команду curl следующим образом: curl -I http://localhost/vmportal/css/. Кроме того, переименуйте заголовок в «X-myHeader».
флаг th
Пробовал. Буквально ничего не изменилось, за исключением того, что я не получаю вывод HTML на своей консоли.

Ответить или комментировать

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