如何在不使用显式命令的情况下强制php使用`application/json`?
我们希望创建某种api,其中json格式的结果是使用如何在不使用显式命令的情况下强制php使用`application/json`?,php,json,.htaccess,http-headers,mime-types,Php,Json,.htaccess,Http Headers,Mime Types,我们希望创建某种api,其中json格式的结果是使用.php文件生成的 web文件夹看起来像 api ├── .htaccess └── foo ├── bar.php └── baz.php 其中,bar.php和baz.php是生成json格式查询回复的php文件 这样的文件(bar.php)看起来像: <?php include_once("../../utils.php"); $id = $_GET['id']; echo json_encode(some_f
.php
文件生成的
web文件夹看起来像
api
├── .htaccess
└── foo
├── bar.php
└── baz.php
其中,bar.php
和baz.php
是生成json格式查询回复的php文件
这样的文件(bar.php
)看起来像:
<?php
include_once("../../utils.php");
$id = $_GET['id'];
echo json_encode(some_function($id));
?>
#All php files return JSON formatted text.
AddType application/json json php
但是生成的结果仍然是mime类型:text/html
什么会导致这种情况?PHP有一些值,包括。当Apache服务器生成
.php
页面时,它首先设置应用程序/json
mime类型,但当php引擎启动时,标题被修改回文本/html
。您可以通过在.htaccess
中添加其他规则来设置:
#All php files return JSON formatted text.
AddType application/json json php
php_value default_mimetype application/json
AddType应用程序/json.json。php@TheStatehz:不起作用:(.try-AddType application/json.php-这是语法。请确保您的.htaccess文件也在使用中。@TheStatehz:也尝试过这个(还有很多变体).根据Apache文档,两者都是有效的。
AddType
是由OP添加的,因此我认为可以忽略它。它只需编写php\u value default\u mimetype应用程序即可工作/json@Ivanzinho:是正确的,但另外两行来自OPs.httaccess
。