apache 当我的服务器收到一个标头为“Accept:application/ld+json”,返回特定文件

fjnneemd  于 2022-11-16  发布在  Apache
关注(0)|答案(2)|浏览(181)

我希望能够执行以下操作:
当我的Apache服务器收到具有以下标头的请求时:

Accept: application/ld+json

我想返回文件“./jsonld”,其标题为

ContentType: application/ld+json

这是我目前所掌握的情况:

<If "%{HTTP:Accept} =~ m#application/ld\+json#">
   RewriteEngine On
   RewriteRule ^ /jsonld [L]

   Header always set Content-Type "application/ld+json"

</If>
ozxc1zmp

ozxc1zmp1#

不需要Apache <If>表达式或Header指令,因为您只需要使用mod-rewrite就可以做到这一点。

RewriteEngine On

RewriteCond %{HTTP:Accept} application/ld\+json
RewriteRule ^ jsonld [T=application/ld+json,END]

每个发送相应Accept头的请求都被重写为/jsonld,这包括对/jsonld本身的请求(以确保在响应中发送回正确的mime类型)。
T标志强制使用将与响应一起发送的mime类型(Content-Type标头)。
假设这些都位于文档根(.htaccessjsonld文件)中,则替换字符串上的斜杠前缀将被有意省略。
END标志(Apache 2.4)用于防止重写循环。

oymdgrw7

oymdgrw72#

AddType application/ld\+json .jsonld

RewriteEngine On 
RewriteCond %{HTTP:Accept} application/ld\+json
RewriteRule ^ jsonld.jsonld

相关问题