Sử dụng trang kích hoạt pushState
, thông thường bạn chuyển hướng chương trình SEO bằng cách sử dụng quy ước escaped_fragment
. Bạn có thể đọc thêm về điều đó here..htaccess cho chương trình SEO thu thập thông tin các ứng dụng đơn lẻ mà không cần băm nhỏ
Quy ước giả định rằng bạn sẽ sử dụng tiền tố băm (#!
) trước tất cả các URI của bạn trên một ứng dụng trang đơn. Chương trình SEO sẽ thoát khỏi những mảnh vỡ này bằng cách thay thế hashbang bằng quy ước riêng của nó là escaped_fragment
khi thực hiện yêu cầu trang.
//Your page
http://example.com/#!home
//Requested by bots as
http://example.com/?_escaped_fragment=home
Điều này cho phép quản trị viên trang web phát hiện bot và chuyển hướng chúng đến trang được tạo sẵn được lưu trong bộ nhớ cache.
RewriteCond %{QUERY_STRING} ^_escaped_fragment_=(.*)$
RewriteRule ^(.*)$ https://s3.amazonaws.com/mybucket/$1 [P,QSA,L]
Vấn đề là hashbang bị loại bỏ nhanh chóng với sự hỗ trợ rộng rãi được điều chỉnh pushState
. Nó cũng thực sự xấu xí và không trực quan với người dùng.
Vậy điều gì sẽ xảy ra nếu chúng tôi sử dụng chế độ HTML5 trong đó pushState hướng dẫn toàn bộ ứng dụng người dùng?
//Your index is using pushState
http://example.com/
//Your category is using pushState (not a folder)
http://example.com/category
//Your category/subcategory is using pushState
http://example.com/category/subcategory
Có thể viết lại quy tắc hướng dẫn cho phiên bản được lưu trong bộ nhớ cache của bạn bằng quy ước mới hơn này không? Related but only accounts for index edge case. Google cũng has an article đề xuất sử dụng phương pháp chọn chọn tham gia cho vỏ cạnh đơn này bằng cách sử dụng <meta name="fragment" content="!">
trong trang <head>
của trang. Một lần nữa, điều này là cho một trường hợp cạnh duy nhất. Ở đây chúng tôi đang nói về việc xử lý mọi trang dưới dạng một tùy chọn chọn tham gia senario.
http://example.com/?escaped_fragment=
http://example.com/category?escaped_fragment=
http://example.com/category/subcategory?escaped_fragment=
Tôi nghĩ rằng escaped_fragment
vẫn có thể được sử dụng như một định danh cho chương trình SEO, và rằng tôi có thể trích xuất tất cả mọi thứ Đáp các lĩnh vực và định danh này gắn liền với các vị trí xô tôi như:
RewriteCond %{QUERY_STRING} ^_escaped_fragment_=$
# (high level example I have no idea how to do this)
# extract "category/subcategory" == $2
# from http://example.com/category/subcategory?escaped_fragment=
RewriteRule ^(.*)$ https://s3.amazonaws.com/mybucket/$2 [P,QSA,L]
Cách tốt nhất để xử lý việc này là gì?
Hi @ dan-kanze..Tôi đang gặp vấn đề tương tự..Bạn có bất kỳ loại giải pháp hoặc bất kỳ thứ gì có thể giúp tôi..Một cái kẹt với – Catmandu
Tôi đã ở đó, pushState dường như yêu cầu bạn có các thư mục này trên đĩa của bạn. Bằng cách đó, những người hỗ trợ pushState sẽ có thể xem trang đó, cũng như các bot. – pedroassis