Apache服务器如何实现根据UserAgent进行ProxyPass

  1. 1. 要求
  2. 2. 实现方法

要求

我们的web的某些页面,需要在SP View的情况下交给不同的后台应用处理。

举个例子。对于 www.example.com/demo, 我们希望,当用户用手机访问的访问的时候,我们交给backend, 当使用pc访问的话,我们照常访问在这个web服务器上的vhost下的www/example.com/demo

实现方法

我们用BrowserMatch来定义一个变量device,然后使用RewriteCond进行判断,最后用RewriteRule的P 选项进行反向代理。

1
2
3
4
5
6
7
8
BrowserMatch "^Mozilla/5\.0 \((iPhone;|iPod;|iPod touch;|Android .* Mobile)" device=smartphone
BrowserMatch "^Opera/.* Opera Mini" device=smartphone
BrowserMatch "^Mozilla/5\.0 \(Linux; U; Android .* (SC-01C|N-06D)" device=tablet

RewriteEngine On
RewriteCond %{ENV:device} ^smartphone$
#RewriteRule ^/demo/(.*)$ https://backend/$1 [P]
ProxyPassReverse ^/demo/(.*)$ https://backend/$1
如果你觉得本文对你有帮助,请给我点赞助。