Neo thiếu có thể được đăng nhập?


8

Nếu tôi có một liên kết bị hỏng, nó sẽ được đăng nhập với 404. Nếu tôi có một liên kết đến một neo và thiếu neo, tôi không nhận được một mục trong nhật ký. Làm cách nào tôi có thể tìm thấy các liên kết neo bị hỏng đó, đặc biệt nếu lưu lượng truy cập đến từ người giới thiệu? Có cách nào để cấu hình đăng nhập để nắm bắt thông tin này không?

Máy chủ HTTP: Apache 2


+1, tôi thường tự hỏi liệu có cách nào thực tế (tự động) để làm điều đó không.
Tim Post

Câu trả lời:


11

Không thể định cấu hình ghi nhật ký phần #fragment của URL vì máy chủ web của bạn không bao giờ nhìn thấy nó. Từ RFC3986

mã định danh phân đoạn được tách ra khỏi phần còn lại của URI trước khi hủy đăng ký và do đó, thông tin nhận dạng trong chính phân đoạn đó chỉ được quy định bởi tác nhân người dùng, bất kể lược đồ URI. Mặc dù việc xử lý riêng biệt này thường bị coi là mất thông tin, đặc biệt là chuyển hướng chính xác các tài liệu tham khảo khi tài nguyên di chuyển theo thời gian, nó cũng có tác dụng ngăn các nhà cung cấp thông tin từ chối quyền tham chiếu thông tin trong tài nguyên. Tham chiếu gián tiếp cũng cung cấp thêm tính linh hoạt và khả năng mở rộng cho các hệ thống sử dụng URI, vì các loại phương tiện mới dễ xác định và triển khai hơn so với các sơ đồ nhận dạng mới.

Điều này có nghĩa là về cơ bản trình duyệt web loại bỏ phần neo của URI trước khi gửi nó đến máy chủ web. Các giao thức HTTP thậm chí không đối phó với các mảnh vỡ vì điều này; Họ không bao giờ được gửi qua dây.

Các đoạn có sẵn cho JavaScript (vì đó là phía máy khách) như một phần của thuộc tính location.href. Sau khi có được tên phân đoạn, bạn có thể xác nhận rằng nó hợp lệ bằng cách tìm kiếm thuộc tính tên của document.anchors [] mảng cho giá trị đó.

Khi bạn đã thực hiện điều này, nó có thể được ghi lại bằng AJAX hoặc, dưới dạng ghi chú của khung , được chuyển đến Google Analytics hoặc các dịch vụ tương tự.


Nếu mỏ neo chỉ là <a name="blah"></a>bạn sẽ không thể xác định sự tồn tại với getEuityByID; nó có thể hoạt động trong IE (tôi không chắc liệu nó có còn như vậy trong 8 không), nhưng nếu bạn muốn làm điều này, tôi cũng khuyên bạn nên thêm id.
Cebjyre

Hừm. Gạc một chút ở đó :) Có, thêm id là hiệu quả nhất hoặc bạn có thể đi bộ DOM theo tên hoặc tên thẻ. Tôi sẽ sửa nó.
JasonBirch

Tôi tự hỏi nếu ping neo html5 có thể được sử dụng cho mục đích này.
Kzqai

3

Như những người khác đã nói, neo trang là một cái gì đó mà trình duyệt hoạt động chứ không phải máy chủ web.

Bạn có thể sử dụng một số mã để chuyển thông tin neo vào chương trình Analytics của mình. Ví dụ: bạn có thể trích xuất location.hashgiá trị và chuyển nó cho Google Analytics dưới dạng biến tùy chỉnh .

Hữu ích hơn, bạn có thể chạy mã kiểm tra html trang để tìm một neo tương ứng với giá trị của location.hashvà nếu nó thiếu sẽ kích hoạt sự kiện GA . Điều đó sau đó sẽ cung cấp cho bạn một báo cáo GA về các liên kết neo trang bị hỏng khi người dùng nhấp vào chúng.


Ý tưởng tuyệt vời. Có rất nhiều thứ tôi có thể làm với GA nhưng không, có lẽ là để tiền trên bàn ...
JasonBirch

1

Tôi không nghĩ có thể thấy điều này trong nhật ký của Apache. Nếu một tệp được yêu cầu và phục vụ, điều đó sẽ chấm dứt sự tham gia của Apache (hoặc bất kỳ máy chủ nào khác). Tìm kiếm và định vị đến mỏ neo là điều mà trình duyệt thực hiện. Vào thời điểm trình duyệt của bạn xác định vị trí neo, kết nối đến máy chủ đã bị đóng.

Một trình kiểm tra liên kết tốt sẽ chọn nó, nhưng đó là một quá trình thủ công.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.