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

Max*_*kyi 3 apache-2.2 apache-2.4

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

我尝试添加:

<VirtualHost *:80>
    AddType 'application/json; charset=UTF-8'
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

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

http://my.domain.com/rest/articles/
Run Code Online (Sandbox Code Playgroud)

我也尝试过DefaultType指令:

<VirtualHost *:80>
      DefaultType 'application/json; charset=UTF-8'
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

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

小智 5

您可以使用 Apache 的ForceType指令,文档中对此进行了解释。您必须在目录、位置或文件上下文中使用它。对于 JSON,您需要使用ForceType application/json. 因此,在您的虚拟主机中,您可能想要执行以下操作:

<VirtualHost *:80>
     <Location />
          ForceType application/json
     </Location>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)