4

是否可以根据 HTTP-Header 重定向用户content-type

例如:

1)

应用程序正在尝试加载localhost/res/123/var/abc,并且content-type设置为:

application/json

服务器应该只将 JSON-Result 返回给应用程序(已实现)。

2)

如果普通的网络浏览器正在访问 url localhost/res/123/var/abccontent-type则设置为:

text/html

在这种情况下,服务器应重定向浏览器以输出 web 视图(例如index_web.html)。

我可以在不使用 PHP 的情况下实现这样的事情吗?

4

1 回答 1

9

据我所知,内容类型不是在请求时设置的。因此,您需要检查浏览器是否正在发送Accept标头,该标头向服务器描述了它将接受(并显示)哪些类型的数据而不下载它。大多数浏览器都这样做。他们将以下标头字符串发送到服务器(这是从 Chrome 获得的):

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

因此,您需要Accept使用以下条件检查标题:

RewriteCond %{HTTP:Accept} text/html [NC]
# Then, add your RewriteRules here ...

这将检查是否text/html包含在Accept标题中。

于 2013-05-06T14:46:56.343 回答