Bisakah anchor yang hilang dicatat?

8

Jika saya memiliki tautan yang rusak, itu akan dicatat dengan 404. Jika saya memiliki tautan ke jangkar dan jangkar tersebut hilang, saya tidak mendapatkan entri di log. Bagaimana saya dapat menemukan tautan jangkar yang rusak itu, terutama jika lalu lintas berasal dari perujuk? Apakah ada cara untuk mengkonfigurasi pencatatan untuk mendapatkan informasi ini?

Server HTTP: Apache 2

Dijeda sampai pemberitahuan lebih lanjut.
sumber
+1, saya sering bertanya-tanya apakah ada cara praktis (automagic) untuk melakukan itu.
Pos Tim

Jawaban:

11

Tidak mungkin mengonfigurasi logging bagian #fragment dari URL karena server web Anda tidak pernah melihatnya. Dari RFC3986

pengidentifikasi fragmen dipisahkan dari sisa URI sebelum dereferensi, dan dengan demikian informasi pengidentifikasian dalam fragmen itu sendiri disereferensi semata-mata oleh agen pengguna, terlepas dari skema URI. Meskipun penanganan terpisah ini sering dianggap sebagai kehilangan informasi, khususnya untuk pengalihan referensi yang akurat karena sumber daya bergerak dari waktu ke waktu, itu juga berfungsi untuk mencegah penyedia informasi menolak hak penulis referensi untuk merujuk informasi dalam sumber daya secara selektif. Referensi tidak langsung juga menyediakan fleksibilitas dan ekstensibilitas tambahan untuk sistem yang menggunakan URI, karena jenis media baru lebih mudah untuk didefinisikan dan digunakan daripada skema identifikasi baru.

Artinya, browser web pada dasarnya menghapus bagian jangkar URI sebelum mengirimnya ke server web. The protokol HTTP bahkan tidak berurusan dengan fragmen karena ini; mereka tidak pernah dikirim melalui kawat.

Fragmen tersedia untuk JavaScript (karena itu sisi klien) sebagai bagian dari properti location.href. Setelah mendapatkan nama fragmen, Anda dapat mengonfirmasi bahwa itu valid dengan mencari properti nama array document.anchors [] untuk nilai itu.

Setelah Anda selesai melakukannya, ini dapat dicatat menggunakan AJAX atau, sebagai catatan pelms , diteruskan ke Google Analytics atau layanan serupa.

JasonBirch
sumber
Jika anchor hanya <a name="blah"></a>Anda tidak akan dapat menentukan keberadaan dengan getElementByID; mungkin bekerja di IE (saya tidak yakin apakah masih terjadi di 8), tetapi jika Anda ingin melakukan ini, saya akan menyarankan menambahkan id juga.
Cebjyre
Hmm. Celah sedikit di sana :) Ya, menambahkan id paling efisien, atau Anda bisa berjalan di DOM dengan nama atau nama. Saya akan memperbaikinya.
JasonBirch
Saya ingin tahu apakah html5 anchor ping dapat digunakan untuk tujuan ini.
Kzqai
3

Seperti yang orang lain katakan, jangkar halaman adalah sesuatu yang digunakan browser daripada server web.

Anda dapat menggunakan beberapa kode untuk meneruskan info jangkar ke program Analytics Anda. Misalnya, Anda dapat mengekstrak location.hashnilai dan meneruskannya ke Google Analytics sebagai variabel khusus .

Lebih berguna Anda dapat menjalankan kode yang memeriksa html halaman untuk jangkar yang sesuai dengan nilai location.hashdan jika hilang memicu acara GA . Itu kemudian akan memberi Anda laporan GA tentang tautan jangkar halaman yang rusak saat pengguna mengekliknya.

pelms
sumber
Ide yang hebat. Ada begitu banyak yang bisa saya lakukan dengan GA tetapi tidak, mungkin meninggalkan uang di atas meja ...
JasonBirch
1

Saya tidak berpikir itu mungkin untuk melihat ini di log Apache. Jika suatu file diminta dan disajikan, itu cukup banyak mengakhiri keterlibatan Apache (atau server lain). Menemukan dan memposisikan ke jangkar adalah sesuatu yang dilakukan browser. Pada saat browser Anda menemukan anchor, koneksi ke server sudah ditutup.

Pemeriksa tautan yang baik harus mengambilnya, tapi itu proses manual.

Pos Tim
sumber