it-gundan.com

누락 된 앵커를 기록 할 수 있습니까?

끊어진 링크가 있으면 404로 기록됩니다. 앵커에 대한 링크가 있고 앵커가없는 경우 로그에 항목이 없습니다. 특히 트래픽이 리퍼러에서 오는 경우 앵커 링크가 끊어진 것을 어떻게 찾을 수 있습니까? 이 정보를 캡처하도록 로깅을 구성하는 방법이 있습니까?

HTTP 서버 : Apache 2

8
Dennis Williamson

웹 서버가 URL을 보지 못하므로 URL의 #fragment 부분에 대한 로깅을 구성 할 수 없습니다. RFC3986 에서

프래그먼트 식별자는 역 참조 전에 나머지 URI와 분리되므로, 프래그먼트 자체 내의 식별 정보는 URI 스킴에 관계없이 사용자 에이전트에 의해서만 역 참조된다. 이러한 개별 처리는 종종 정보의 손실로 인식되지만, 특히 시간이지나면서 리소스가 이동함에 따라 참조의 정확한 리디렉션을 위해 정보 제공자가 참조 작성자에게 리소스 내의 정보를 선택적으로 참조 할 수있는 권한을 거부하지 못하게합니다. 간접 참조는 또한 새로운 식별 체계보다 새로운 미디어 유형을 정의하고 배포하기 쉽기 때문에 URI를 사용하는 시스템에 추가적인 유연성과 확장 성을 제공합니다.

이것은 웹 브라우저가 기본적으로 URI의 앵커 부분을 웹 서버로 보내기 전에 제거합니다. HTTP protocol 이 때문에 조각도 다루지 않습니다. 그들은 절대로 송금되지 않습니다.

Location.href 속성의 일부로 클라이언트 측이기 때문에 조각을 JavaScript에 사용할 수 있습니다. 조각 이름을 얻은 후에는 해당 값에 대해 document.anchors [] 배열 요소의 name 속성을 검색하여 조각 이름이 유효한지 확인할 수 있습니다.

이 작업을 완료하면 AJAX를 사용하여 기록하거나 pelms notes 로 Google 웹 로그 분석 또는 유사한 서비스에 전달할 수 있습니다.

11
JasonBirch

다른 사람들이 말했듯이 페이지 앵커는 웹 서버가 아닌 브라우저에서 작동하는 것입니다.

일부 코드를 사용하여 앵커 정보를 웹 로그 분석 프로그램에 전달할 수 있습니다. 예를 들어 location.hash 값을 추출하여 맞춤 변수 로 Google 애널리틱스에 전달할 수 있습니다.

더 유용하게는 location.hash 값에 해당하는 앵커에 대해 페이지 HTML을 검사하고 누락 된 경우 GA event 를 트리거하는 코드를 실행할 수 있습니다. 그러면 사용자가 클릭 할 때 끊어진 페이지 앵커 링크에 대한 GA 보고서가 제공됩니다.

3
pelms

Apache의 로그에서 이것을 볼 수 있다고 생각하지 않습니다. 파일이 요청되어 제공되면 Apache의 참여 (또는 다른 서버)가 거의 종료됩니다. 앵커를 찾고 배치하는 것은 브라우저가하는 일입니다. 브라우저가 앵커를 찾을 때까지 서버에 대한 연결이 이미 닫혀 있습니다.

좋은 링크 체커가 그것을 선택해야하지만 수동 프로세스입니다.

1
Tim Post

CSE HTML Validator는 가격이없는 앵커가 없는지 확인합니다.

http://www.htmlvalidator.com/htmlval/whycseisbetter.html 참조

0
vmarquez