如何使用 nginx 来尊重 acept:text/plain?

如何使用 nginx 来尊重 acept:text/plain?

http 标头中有一个名为的字段accept,因此客户端可以指定首选格式。如何配置在纯文本请求的情况下nginx返回markdown页面,并在 html 请求的情况下通过某种 markdown 实现进行处理?

答案1

部分解决方案(也是最简单的方法)是通过内部重定向。您可能希望将它们放在 内error_page location,以便仅在未找到页面时才激活它。

error_page 404 = @404;
location @404 {
    if ($http_Accept ~ "text/plain") {
        rewrite ^ $uri.text-plain break;
    }
    if ($http_Accept ~ "text/html") {
        rewrite ^ $uri.text-html break;
    }
    location ~ \.text-plain$ {
    }
    location ~ \.text-html$ {
    }
}

这不会考虑到Accept标题中指定的优先级,而且“text/plain”和“text/html”的明确示例在现有浏览器中可能也没什么用——我不确定哪些用户代理会text/plain在其Accept标题中指定。

在过去,Accept它对于决定是否提供.gifpng.png图像很有用,但是现在不再有用了——现在认为所有浏览器都已经并且始终支持 png 图像,并且在接受标头中发送额外的字节不值得额外的流量,因此,例如,Mozilla 不再明确Accept地提供pngimage/png图像,并且大多数其他浏览器可能也会效仿。

相关内容