如何为所有非错误 apache 响应设置默认内容类型?

如何为所有非错误 apache 响应设置默认内容类型?

我想要所有 apache 非错误响应都以 content-type 发送'application/json; charset=UTF-8'。我该怎么做?

我尝试添加:

<VirtualHost *:80>
    AddType 'application/json; charset=UTF-8'
</VirtualHost>

但这需要指定文件扩展名,我不想绑定到文件扩展名,因为我不是请求特定的文件,而是请求这样的资源:

http://my.domain.com/rest/articles/

我也尝试过DefaultType指令:

<VirtualHost *:80>
      DefaultType 'application/json; charset=UTF-8'
</VirtualHost>

但这似乎不起作用 -Content-Type:text/html; charset=utf-8被退回。我遗漏了什么吗?

答案1

您可以使用 Apache 的ForceType指令,详情请参阅文档。您必须在目录、位置或文件上下文中使用它。对于 JSON,您需要使用ForceType application/json。因此,在您的 vhost 中,您可能想要执行如下操作:

<VirtualHost *:80>
     <Location />
          ForceType application/json
     </Location>
</VirtualHost>

相关内容