如何基于http-header内容类型的mod_rewrite

时间:2013-05-06 10:53:25

标签: json apache .htaccess mod-rewrite content-type

是否可以根据HTTP-Header content-type

重定向用户

例如:

1)

应用正在尝试加载localhost/res/123/var/abccontent-type设置为:

application/json

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

2)

如果普通网络浏览器正在访问网址localhost/res/123/var/abc,则content-type设置为:

text/html

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

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

1 个答案:

答案 0 :(得分:7)

据我所知,内容类型未在请求时设置。因此,您需要检查浏览器是否正在发送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