Banner

Cách xóa m=1 nếu chế độ xem không phải mobile

Sử dụng JavaScript kiểm tra trình duyệt của thiết bị đang xem nếu không phải mobile tự động xóa m=1 đằng sau URL hiện tại cùng các URL khác trong blogspot


Mặc định, Blogger sẽ tự động chuyển hướng URL sang m=1 trên mobile, tuy nhiên không có chuyển hướng ngược lại từ mobile sang máy tính. Điều này gây khó khăn khi bạn tiếp tục truy cập một URL khác.

Lấy ví dụ, bạn truy cập một URL bài viết nào đó trong blog được chia sẻ trên Facebook, URL này có m=1, nếu bạn truy cập bằng điện thoại thì không vấn đề gì vì URL đã có m=1 nên không chuyển hướng nữa.

Nhưng bạn truy cập URL được chia sẻ này trên máy tính thì URL cùng các URL khác trong blog không chuyển hướng ngược lại tức xóa m=1. Giả sử bạn muốn truy cập một trang khác URL phải được xóa m=1 trước khi bạn truy cập.

Đoạn JavaScript dưới đây tự động phát hiện chế độ xem trên thiết nếu không phải mobile sẽ xóa m=1 của URL hiện tại và các URL khác trong blog.

<script>//<![CDATA[
window.addEventListener('load',function(){
  if(navigator.userAgent.match(/(iPhone|iPod|iPad|Android|BlackBerry|Windows Phone|webOS)/i)===null){
    var url=window.location.href,
    uri=window.location.toString(),
    m1=url.substring(0,url.indexOf('?m=1')),
    m2=url.substring(0,url.indexOf('&m=1')),
    _a=document.querySelectorAll('a')
    if((uri.length-m1.length)>0) window.history.replaceState({},document.title,m1)
    if((uri.length-m2.length)>0) window.history.replaceState({},document.title,m2)
    for(var i=0;i<_a.length;i++){
      var _b=_a[i].getAttribute('href')
      if(_b.indexOf('?m=1')!=-1) _a[i].setAttribute('href',_b.substr(0,_b.indexOf('?m=1')))
      if(_b.indexOf('&m=1')!=-1) _a[i].setAttribute('href',_b.substr(0,_b.indexOf('&m=1')))
    }
  }
})
//]]></script>

Cụ thể, sau khi bạn chèn đoạn script này vào blog, khi khách truy cập một URL bất kỳ của blog bạn từ bên ngoài, nếu truy cập từ thiết bị không phải mobile thì URL đó cùng các URL khác trong blog sẽ bị xóa m=1.

blogger mobile redirect
chèn script trước thẻ đóng </body> trong theme

Lưu ý code này chỉ kiểm tra xóa m=1 đằng sau URL nếu trình duyệt thiết bị không phải mobile chứ không tạo chuyển hướng nên không ảnh hướng đến SEO và cũng không gây lỗi chuyển hướng.

Tham khảo thêm: Thiết lập URL riêng biệt cho máy tính và thiết bị di động trong blogspot


Liên hệ Zalo