Apache BrowserMatch iOS禁用keepalive。匹配所有iOS版本?

时间:2015-12-09 03:33:30

标签: ios apache httpd.conf keep-alive

由于iOS 8及更高版本中的NSURLRequest超时问题,我不得不在我的apache服务器中关闭keep alive。我读了关于如何设置BrowserMatch的https://stackoverflow.com/a/25996971/3162662,我在httpd.conf中这样做了:

<IfModule setenvif_module>
  BrowserMatch "iOS 8\." nokeepalive
</IfModule>

但我想知道这是否仅适用于iOS 8? iOS 9怎么样?如何匹配来自iOS的所有请求?

谢谢!

1 个答案:

答案 0 :(得分:2)

根据this table os Safari user agents,您似乎可以通过以下设备定位:

BrowserMatch "iPhone" nokeepalive #All iPhones
BrowserMatch "iPhone|iPad|iPod" nokeepalive #All iPhones, iPads and iPods

如果你想定位一个特定的系统版本,我会选择这样的东西:

BrowserMatch "iPhone.*OS\s8" nokeepalive #All iPhones on iOS 8
BrowserMatch "iPhone.*(OS\s8|OS\s9)" nokeepalive #All iPhones on iOS 8

我已经快速检查了Chrome和Firefox for iOS用户代理,它看起来像是相同的正则表达式。当然这一切都需要一些测试。