Estou implantando um site substituto para um cliente, mas ele não quer que todas as páginas antigas terminem em 404. Manter a antiga estrutura de URL não era possível porque era horrível.
Portanto, estou escrevendo um manipulador 404 que deve procurar uma página antiga solicitada e fazer um redirecionamento permanente para a nova página. O problema é que preciso de uma lista de todos os URLs das páginas antigas.
Eu poderia fazer isso manualmente, mas estaria interessado se há algum aplicativo que me forneça uma lista de URLs relativos (por exemplo: / página / caminho, não http: /.../ página / caminho) apenas fornecidos a página inicial página. Como uma aranha, mas que não se importa com o conteúdo a não ser para encontrar páginas mais profundas.
fonte
Respostas:
Não tive a intenção de responder à minha própria pergunta, mas apenas pensei em executar um gerador de mapa do site. O primeiro que descobri que http://www.xml-sitemaps.com tem uma boa saída de texto. Perfeito para minhas necessidades.
fonte
Faz
wget -r -l0 www.oldsite.com
Então, apenas
find www.oldsite.com
revelaria todos os urls, acredito.Como alternativa, apenas exiba essa página personalizada não encontrada em cada solicitação 404! Ou seja, se alguém usasse o link errado, ele obteria a página informando que a página não foi encontrada e dando algumas dicas sobre o conteúdo do site.
fonte
include
/require
/ etc. montagem de páginas, isso realmente não funcionará.Aqui está uma lista de geradores de mapas de sites (dos quais, obviamente, você pode obter a lista de URLs de um site): http://code.google.com/p/sitemap-generators/wiki/SitemapGenerators
fonte
O melhor que encontrei é http://www.auditmypc.com/xml-sitemap.asp, que usa Java e não tem limite de páginas, e ainda permite exportar resultados como uma lista bruta de URLs.
Ele também usa sessões, portanto, se você estiver usando um CMS, certifique-se de estar desconectado antes de executar o rastreamento.
fonte
Portanto, em um mundo ideal, você teria uma especificação para todas as páginas do seu site. Você também teria uma infraestrutura de teste que poderia atingir todas as suas páginas para testá-las.
Você provavelmente não está em um mundo ideal. Por que não fazer isso ...?
Crie um mapeamento entre os URLs antigos bem conhecidos e os novos. Redirecione quando você vir um URL antigo. Eu possivelmente consideraria apresentar um "esta página foi movida, seu novo url é XXX, você será redirecionado em breve".
Se você não tiver nenhum mapeamento, apresente uma mensagem "desculpe - esta página foi movida. Aqui está um link para a página inicial" e redirecione-os se desejar.
Registre todos os redirecionamentos - especialmente aqueles sem mapeamento. Com o tempo, adicione mapeamentos para páginas importantes.
fonte
O wget de uma máquina Linux também pode ser uma boa opção, pois há opções para o spider e alteram sua saída.
EDITAR: wget também está disponível no Windows: http://gnuwin32.sourceforge.net/packages/wget.htm
fonte
Escreva um spider que leia cada html do disco e produza todos os atributos "href" de um elemento "a" (pode ser feito com um analisador). Lembre-se de quais links pertencem a uma determinada página (essa é uma tarefa comum para uma estrutura de dados MultiMap). Depois disso, você pode produzir um arquivo de mapeamento que atua como entrada para o manipulador 404.
fonte
Eu examinaria qualquer número de ferramentas de geração de mapas de sites online. Pessoalmente, usei este (baseado em java) no passado, mas se você fizer uma pesquisa no Google por "construtor de mapa de site", tenho certeza de que encontrará muitas opções diferentes.
fonte