답변:
우리가 사용한 두 가지 버전이 있습니다. 첫 번째는 @Marius 가 FF Mobile 의 UA 문자열 에 더 이상없는 특정 "Fennec"언급을 빼고 언급 한 것과 같습니다 . 비슷한 출처에서 얻었습니다.
iPhone|iPod|BlackBerry|Palm|Googlebot-Mobile|Mobile|mobile|mobi|Windows Mobile|Safari Mobile|Android|Opera Mini
두 번째는 동일하지만 "모바일"이라는 용어가 제거되어 사이트의 모바일 버전이 사용자 에이전트의 모바일을 포함하는 iPad에 제공되지 않습니다. 애플은 TN2262 에서 이것을 지적 하기도한다 .
iPad의 Safari는 "데스크톱"웹 환경을 제공 할 수 있으며 iPad는 큰 화면과 빠른 네트워크 연결을 제공하므로이 환경을 기대할 수 있습니다. 작은 화면의 모바일 장치에 최적화 된 웹 사이트 버전이 있다면이 모바일 버전을 iPad 사용자에게 제공하지 마십시오.
...
iPad의 Safari 사용자 에이전트 문자열에는 "Mobile"이라는 단어가 포함되어 있지만 "iPhone"이라는 단어는 포함되어 있지 않습니다. 현재 "모바일"로 자체 식별되는 브라우저에 모바일 컨텐츠를 제공하는 경우 사용자 에이전트 문자열 검사를 수정하여 iPad를 찾은 다음 잘못된 버전의 사이트를 보내지 않도록해야합니다.
FF Mobile에서 볼 수있는 내용에 따라이 문자열에서 "Android"를 사용하면 다양한 이유 때문에 UA 문자열에 포함 하기로 결정되었으므로 데스크탑 테마를 iPad가 아닌 모든 태블릿에 제공하려는 경우 문제가 발생할 수 있습니다. .
나는 솔직히 위의 문자열의 범위를 개인적으로 테스트하지 않았습니다. 나는 이것을 안다 : 그것은 복잡한 혼란이다! :)
참고 : EE 1.12 또는 이전 버전 (1.13은 체크하지 않은 상태)에서이 설정을하는 경우 Fagent가 제대로 작동하려면 Magento Support의 패치가 필요합니다. 릴리스 빌드에서 디자인 예외를 고려하지 않습니다.
업데이트 1 :
설계 예외가 작동하는 데 필요한 패치가 필요한 버그는 여전히 EE 1.13.0.0 및 1.13.1.0에 존재합니다. Magento 지원에서 제공하는 패치가 있으며 알려진 문제 목록에 있습니다. SUPEE-1598
데스크톱 테마를 제공하는 태블릿과 모바일 테마를 제공하는 휴대폰에 대한 두 가지 디자인 예외를 추가했습니다. 먼저 태블릿을 타겟팅하는 예외를 추가 한 다음 휴대 전화를 타겟팅하는 예외를 추가합니다.
정제
iPad|Silk|Kindle|Xoom|SCH-I800|Tablet|GT-P10|SC-01C|SHW-M180S|SGH-T849|SCH-I800|SHW-M180L|SPH-P100|SGH-I987|zt180|HTC(.Flyer|\\_Flyer)|Sprint.ATP51|ViewPad7|pandigital(sprnova|nova)|Ideos.S7|Dell.Streak.7|Advent.Vega|A101IT|A70BHT|MID7015|Next2|nook|Windows NT|DROID RAZR
전화
android.+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|iP(hone|od)|iris|kindle|lge |maemo|meego.+mobile|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino|(Android.+Mobile)|NOKIA|SymbianOS|N900|BlackBerry|Mobile
이것은 예상대로 거의 100 % 작동합니다. 크레딧을 주어야합니다. 내 정규직으로 사용 한 정규식 인 beeplogic 덕분에 대단히 감사합니다.
가능한 값 목록은 다음과 같습니다. 나는 이것이 가능한 모든 값이 아니라고 확신하지만 대부분의 경우에 적용됩니다.
iPhone|iPod|BlackBerry|Palm|Googlebot-Mobile|Mobile|mobile|mobi|Windows Mobile|Safari Mobile|Android|Opera Mini|Fennec
출처 :
http://magebase.com/magento-tutorials/magento-design-exceptions-explained/
http://inchoo.net/ecommerce/magento/magento-mobile-theme-imobile/
이것은 내가 사용한 것입니다 :
android.+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|meego.+mobile|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino
특정 버전의 Android 기기를 필터링해야 할 필요가있었습니다. iOS 버전을 필터링하기 위해 비슷한 접근 방식을 사용할 수 있습니다.
다음 예는 버전 "2. *", "3. *", "4.0 *"을 제외한 iPad, iPhone 및 모든 Android와 일치합니다.
iPad|iPhone|Android ((?!(2\.|3\.|4\.0)).)
부정적인 둘러보기를 사용하고 있습니다 . 여기 설명을 참조 하십시오 .
"> 2.3"을 모방하려고하면 정규식에서 작동하지 않지만 예제로 해결 방법이 필요합니다.
온라인 문자열에서 정규식 일치를 테스트하는 데 유용한 리소스는 Rubular입니다.