【发布时间】: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()并在代码中的任何位置做出相应的反应。