2009-03-04 21 views
7

Tôi có một trang web và gần đây tôi đã được yêu cầu tạo phiên bản di động cho nó, bây giờ tôi đã thực hiện nó, tôi được yêu cầu thực hiện chuyển hướng tự động để người dùng truy cập trang web thông qua PDA/iPhone/Smartphone/etc anh/cô ấy được tự động chuyển đến m.website.com nhưng tôi không biết làm thế nào để làm điều này =/Tôi đã thử một số php và javascripts tôi tìm thấy bằng cách sử dụng google nhưng không có gì cho đến nay đã giúp tôi. Các bạn có thể không?Mobile Redirect

Trả lời

3

Kiểm tra WURFL và tạo trình chuyển hướng 302 cho User-Agents khớp với danh sách chuỗi tác nhân người dùng của trình duyệt trên thiết bị di động.

Hoặc, chỉ cần tìm iPhone trong User-Agent và chuyển hướng những người đó đến trang web iPhone của bạn. Các trình duyệt khác chỉ huy thị phần nhỏ như vậy, hầu như không đáng để nhắm đến chúng. iPhone chiếm 67% lưu lượng truy cập HTML trên web di động. Bạn có thể làm điều này trong Javascript trên trang web của bạn.

+1

Đặt MobileSafari đó để iPod touch không cảm thấy bị bỏ quên. –

+4

Mặt khác, iPhone có trình duyệt web tốt và màn hình phong nha, vì vậy thường có thể xử lý các trang web ‘bình thường’ tốt. Các trình duyệt di động khác, đặc biệt là sự hủy diệt là IE Mobile, có thể cần nhiều trang web hơn cho nhu cầu của họ. – bobince

+1

Bobince điểm tốt. Đối với trang web của chúng tôi, chúng tôi đã chọn loại trừ rõ ràng iPhone khỏi danh sách thiết bị di động sẽ được chuyển hướng đến phiên bản dành cho thiết bị di động. –

1

có lẽ nếu bạn liệt kê mã không hoạt động, bạn có thể cung cấp thêm trợ giúp.

nếu bạn có php, tính năng Phát hiện tác nhân người dùng hoạt động tốt trong hầu hết các trường hợp.

< ?php 
$browser = strpos($_SERVER['HTTP_USER_AGENT'],"iPhone"); 
if ($browser == true) { header(”Location: http://www.example.com/“); } 
} 
?> 

Ngoài ra, điều này có vẻ giống như một người bị mắc mưu của: Identifying different mobile handsets and redirecting to different websites

+1

Làm cho MobileSafari đó trở nên không thể cảm thấy iPod touch. –

0

Một câu hỏi rất tương tự đã được hỏi và trả lời tại đây:

How do I determine whether it's a mobile device with PHP?

các thiết bị truyền thống điện thoại di động đã phát hiện bằng cách so sánh tiêu đề HTTP Tác nhân người dùng với danh sách chuỗi UA di động nổi tiếng. Phương pháp mới thay vì cố gắng phát hiện sự hiện diện của của hệ điều hành trên máy tính - bất kỳ thứ gì được tìm thấy không phải là HĐH dành cho máy tính để bàn sau đó phải là thiết bị di động.

Kết quả này ít sai lệch hơn tích cực.

Tôi đã viết một bài với mẫu mã bằng Python ở đây:

http://notnotmobile.appspot.com

Detect dù một thiết bị là một máy tính để bàn - nếu nó không phải là sau đó chuyển hướng đến trang web di động của bạn!

Chúc mừng,

John

0

Một khi bạn có được tên miền phụ di động của bạn thiết lập, hãy chắc chắn để tham khảo bài viết này từ A List Apart trong đó mô tả cách thiết bị di động phản ứng với các thuộc tính CSS, phương tiện truyền thông = "cầm tay". Thật không may, không phải tất cả đều phản ứng như nhau.

http://www.alistapart.com/articles/returnofthemobilestylesheet

2

tôi đã xuất bản phiên bản cuối cùng của "Apache Mobile Lọc", dự án mã nguồn mở này có trong 8 tháng đầu năm, hơn 1100 lượt tải về từ SourceForge và Tôi cho rằng cùng một từ CPAN.

Bộ lọc di động Apache cho phép bạn truy cập WURFL từ bất kỳ ngôn ngữ lập trình nào, không chỉ Java và php được sử dụng theo truyền thống cho các trang web di động động.

Mô-đun phát hiện thiết bị di động và chuyển khả năng WURFL vào ứng dụng web khác dưới dạng biến môi trường. Nó cũng có thể được sử dụng để thay đổi kích thước hình ảnh khi đang di chuyển để thích ứng với kích thước màn hình của thiết bị di động. Hãy thử và cho tôi biết ý kiến ​​của bạn.

Để biết thêm thông: http://www.idelfuschini.it/it/apache-mobile-filter-v2x.html

2

Tôi đã viết một kịch bản JS gọi là "redirection_mobile.js "để giải quyết vấn đề này. Nó phát hiện Tác nhân người dùng và chuyển hướng đến phiên bản di động nếu bạn đang truy cập trang web từ thiết bị di động.

Trong một số trường hợp bạn muốn chuyển hướng từ thiết bị di động sang phiên bản máy tính để bàn (như với liên kết "Truy cập trang web chính"), tập lệnh sẽ xử lý và sau khi bạn kết thúc phiên, bạn sẽ truy cập phiên bản di động một lần nữa.

Bạn có thể tìm mã nguồn trên github đây https://github.com/sebarmeli/JS-Redirection-Mobile-Site và bạn có thể đọc thêm chi tiết tại một trong những bài viết của tôi ở đây:

http://blog.sebarmeli.com/2010/11/02/how-to-redirect-your-site-to-a-mobile-version-through-javascript/

0

Tôi sử dụng http://detectmobilebrowser.com và nhận thấy đây là cách nhanh nhất và dễ dàng nhất. Nó hoạt động khá tốt. Trang web này tạo ra các kịch bản máy chủ tự động (php, perl, python, coldfusion, apache, jquery, vv) phát hiện trình duyệt di động và chuyển hướng cho phù hợp. Bạn chỉ có thể sao chép và dán mã ở đâu đó trong tệp Chỉ mục của mình.

+0

Chris - đây là câu trả lời "soạn sẵn" giống hệt nhau cho [this this] (http://stackoverflow.com/questions/1865934/redirect-url-to-mobile-version/6275716#6275716). Hãy đảm bảo câu trả lời của bạn được thiết kế riêng để trả lời vấn đề cụ thể của OP. Đăng câu trả lời giống hệt như thế này sẽ bị cộng đồng gắn cờ là spam. Ngoài ra nếu bạn đang ở trong bất kỳ cách nào liên kết với dự án này thì bạn nên tiết lộ điều này. Cảm ơn. – Kev

+0

hmm ... đó là một cách thú vị để nhìn thấy nó. Tôi vừa trả lời hai câu hỏi cơ bản giống nhau và cố gắng hữu ích cho cả hai bài đăng. Điều này có thể bị gắn cờ là spam? Đây là một cộng đồng thú vị. Dù sao thì tôi cũng sẽ ghi nhớ điều đó. Cảm ơn. – Chris

0

chút này của Javascript cũng có thể hỗ trợ:

<script> 
    if(/Android|webOS|iPhone|iPad|iPod|BlackBerry|BB10|IEMobile|Opera Mini/i.test(navigator.userAgent)) //Specify the mobile devices that you would like this if statement to apply to. 
    { 
     image_y = document.getElementById('bodyID'); //Get the ID of the body and assign it to a variable. 
     image_y.parentNode.removeChild(image_y); //Remove the body to prevent anything loading on the screen in case there are issues with the window location redirect. 
     window.location = "mobile.html"; //Re-assign the window location to a new html page that is caters for the redirect. 
    } 
</script> 

tôi đặt nó trong sự khởi đầu của cơ thể HTML.