我的问题当用户从移动设备,桌面设备或平板电脑访问我的网站时,我想提供不同的index.html文件。我正在使用Apache并检查我是否可以基于用户代理执行此操作。我编写了代码,但在某些情况下会应用错误的条件(例如,将显示带有Mobile的用户标题桌面版本的Android)。同样在桌面的情况下一切正常但是当选择移动设备或平板电脑时,我会收到404.此外,我确信js / html代码适用于我在本地测试的所有情况。
我的问题我用于条件的regrex是否正确?第一,第二和第三不起作用。你也知道我为什么在试图访问手机或平板电脑时获得404?
我的代码 的的httpd.conf
<IfModule dir_module>
<If "%{HTTP_USER_AGENT} in { 'iPhone', 'Android' } and %{HTTP_USER_AGENT} =~ /Mobile/">
DirectoryIndex mobile/index.html
</If>
<ElseIf "%{HTTP_USER_AGENT} in { 'BlackBerry', 'Opera Mini', 'Windows Phone' }">
DirectoryIndex mobile/index.html
</ElseIf>
<ElseIf "%{HTTP_USER_AGENT} in { 'Tablet', 'Android' } and !%{HTTP_USER_AGENT} =~ /Mobile/">
DirectoryIndex tablet/index.html
</ElseIf>
<ElseIf "%{HTTP_USER_AGENT} =~ /iPad/">
DirectoryIndex tablet/index.html
</ElseIf>
<Else>
DirectoryIndex desktop/index.html
</Else>
</IfModule>
文件结构
htdocs --- desktop
- index.html
- desktop.bundle.js
--- mobile
- index.html
- mobile.bundle.js
--- tablet
- index.html
- tablet.bundle.js