使用 Apache Httpd mod_rewrite 根据 Accept 请求标头重写 URL?

使用 Apache Httpd mod_rewrite 根据 Accept 请求标头重写 URL?

我正在尝试根据请求的 Accept 标头重写 URL。我在文档中看到这似乎是可行的,但我找不到任何有关如何操作的详细信息或示例。

基本上,我希望/abc/index.html根据 Accept 标头重写请求:

请求Accept: application/vnd.x.v1+json改写为/v1/abc/index.html 请求Accept: application/vnd.x.v2+json改写为/v2/abc/index.html

等等。带有通用application/jsonAccept 标头或根本没有 Accept 标头的请求将被重写为/v5/abc/index.html

非常感谢任何有关谁能完成此事的指点!

谢谢!

答案1

RewriteCond %{HTTP_ACCEPT} ^application/vnd\.x\.(v[1-9])\+json
RewriteRule ^(/abc/index\.html)$ /%1/$1 [L]

RewriteCond行与 Accept: 标头匹配并捕获vX字符串。

RewriteRule 执行实际的重写并将RewriteCond捕获的字符串添加到现在捕获的位置;使用%插值RewriteCond捕获,$插值 RewriteRule 捕获。

调整图案等以适应。

相关内容