desenv-web-rp.com

As âncoras ausentes podem ser registradas?

Se eu tiver um link quebrado, ele será registrado com um 404. Se eu tiver um link para uma âncora e a âncora estiver ausente, não recebo uma entrada no log. Como posso encontrar esses links de âncora quebrados, especialmente se o tráfego é proveniente de um referenciador? Existe uma maneira de configurar o log para capturar essas informações?

Servidor HTTP: Apache 2

8
Dennis Williamson

É impossível configurar o log da parte #fragment da URL porque o servidor da Web nunca a vê. De RFC3986

o identificador de fragmento é separado do restante do URI antes de uma desreferencia e, portanto, as informações de identificação no próprio fragmento são desreferenciadas apenas pelo agente do usuário, independentemente do esquema do URI. Embora esse tratamento separado seja frequentemente considerado uma perda de informações, particularmente para o redirecionamento preciso de referências à medida que os recursos se movem ao longo do tempo, também serve para impedir que os provedores de informações neguem aos autores de referência o direito de se referirem às informações dentro de um recurso seletivamente. A referência indireta também fornece flexibilidade e extensibilidade adicionais aos sistemas que usam URIs, pois novos tipos de mídia são mais fáceis de definir e implantar do que novos esquemas de identificação.

O que isso significa é que o navegador da Web basicamente retira a parte âncora do URI antes de enviá-lo ao servidor da Web. O protocolo HTTP nem lida com fragmentos por causa disso; eles nunca são enviados por fio.

Fragmentos estão disponíveis para JavaScript (porque é do lado do cliente) como parte da propriedade location.href. Depois de obter o nome do fragmento, você pode confirmar que ele é válido pesquisando a propriedade name dos elementos da matriz document.anchors [] para esse valor.

Depois de fazer isso, ele pode ser registrado usando AJAX ou, como notas , passado para o Google Analytics ou serviços similares.

11
JasonBirch

Como já foi dito, as âncoras de páginas são algo em que o navegador opera e não o servidor da web.

Você pode usar algum código para passar as informações da âncora para o seu programa do Analytics. Por exemplo, você pode extrair o valor location.hash e transmiti-lo ao Google Analytics como variável personalizada .

Mais útil, você pode executar um código que verifique o html da página em busca de uma âncora que corresponda ao valor de location.hash e, se estiver faltando, dispara um evento do GA . Isso forneceria um relatório GA em links de âncora de página quebrados conforme os usuários clicam neles.

3
pelms

Eu não acho que é possível ver isso nos logs do Apache. Se um arquivo for solicitado e servido, isso praticamente encerrará o envolvimento do Apache (ou qualquer outro servidor). Encontrar e posicionar na âncora é algo que o navegador faz. Quando o seu navegador consegue localizar a âncora, a conexão com o servidor já está fechada.

Um bom verificador de link deve buscar isso, mas esse é um processo manual.

1
Tim Post

O CSE HTML Validator verifica se há âncoras ausentes ... por um preço.

Consulte http://www.htmlvalidator.com/htmlval/whycseisbetter.html

0
vmarquez