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.
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
mình test thì không được
Trả lờiXóa