【问题标题】:How to add a specific HTTP header to every Drupal 7 page request?如何为每个 Drupal 7 页面请求添加特定的 HTTP 标头?
【发布时间】:2021-04-20 21:45:44
【问题描述】:

在 Drupal 7 站点上,我需要发送一个特定的 HTTP 标头,其中包含返回给浏览器的所有页面响应。我找到了documentation for drupal_add_http_header,所以我知道我需要添加这段代码:

drupal_add_http_header('Permissions-Policy', 'microphone=(self "https://www.example.com")');

我不知道在哪里添加代码。我应该把它放在 bootstrap.inc 中的某个地方,还是一个永远不应该直接编辑的核心文件?

另外,我是否需要做一些特别的事情来确保它只在 Drupal 提供网页时运行,而不是通过 Drush 命令行工具调用?

【问题讨论】:

  • 您可能希望将其添加到自定义模块或主题 .theme 文件中的 HOOK_preprocess_page 函数中。您永远不应该更改 bootstrap.inc 或任何其他 drupal 核心文件,因为如果您升级,它就会消失。就 drush 而言,您不必做任何特别的事情。
  • 我也建议实现hook_preprocess_page。如果您希望在每个响应中都使用此标头,无论 drupal 是否提供实际的 HTML 页面(即考虑 ajax 请求),您可能更喜欢hook_init。对于 CLI 问题,您可以测试 drupal_is_cli() 并在代码中的任何位置做出相应的反应。

标签: drupal drupal-7


【解决方案1】:

根据@EricLavault 所说的,您也可以使用HOOK_page_buildHOOK_page_alterHOOK_page_delivery_callback_alter,即使最后两个似乎不是用于此类目的。

【讨论】:

    猜你喜欢
    • 2018-11-25
    • 2021-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多