Wdrażam witrynę zastępczą dla klienta, ale nie chce, aby wszystkie jego stare strony kończyły się błędem 404. Zachowanie starej struktury adresów URL nie było możliwe, ponieważ było ohydne.
Piszę więc program obsługi 404, który powinien szukać starej strony, której żądano, i wykonywać stałe przekierowanie do nowej strony. Problem w tym, że potrzebuję listy wszystkich starych adresów URL stron.
Mógłbym to zrobić ręcznie, ale byłbym zainteresowany, czy są jakieś aplikacje, które dostarczyłyby mi listę względnych (np: / page / path, a nie http: /.../ page / path) adresów URL, które podano właśnie jako adres domowy strona. Jak pająk, ale taki, który nie dba o treść poza szukaniem głębszych stron.
web-crawler
Oli
źródło
źródło
Odpowiedzi:
Nie chciałem odpowiadać na własne pytanie, ale pomyślałem o uruchomieniu generatora map witryn. Pierwszy, jaki znalazłem, http://www.xml-sitemaps.com ma ładny tekst. Idealne na moje potrzeby.
źródło
zrobić
wget -r -l0 www.oldsite.com
Wtedy po prostu
find www.oldsite.com
ujawniłbym wszystkie adresy URL, jak sądzę.Alternatywnie, po prostu wyświetlaj tę niestandardową stronę nie znaleziono przy każdym żądaniu 404! To znaczy, jeśli ktoś użył niewłaściwego linku, dostałby stronę z informacją, że strona nie została znaleziona i podał kilka wskazówek dotyczących zawartości witryny.
źródło
include
/require
/ itp. składanie stron, to naprawdę nie zadziała.Oto lista generatorów map witryn (z których oczywiście można uzyskać listę adresów URL ze strony): http://code.google.com/p/sitemap-generators/wiki/SitemapGenerators
źródło
Najlepsze, co znalazłem, to http://www.auditmypc.com/xml-sitemap.asp, który wykorzystuje Javę i nie ma ograniczeń co do stron, a nawet pozwala eksportować wyniki jako surową listę adresów URL.
Używa również sesji, więc jeśli korzystasz z CMS, upewnij się, że jesteś wylogowany przed uruchomieniem indeksowania.
źródło
Zatem w idealnym świecie miałbyś specyfikację dla wszystkich stron w swojej witrynie. Miałbyś również infrastrukturę testową, która mogłaby trafić na wszystkie strony, aby je przetestować.
Prawdopodobnie nie jesteś w idealnym świecie. Dlaczego nie zrobić tego ...?
Utwórz mapowanie między dobrze znanymi starymi adresami URL a nowymi. Przekieruj, gdy zobaczysz stary adres URL. Prawdopodobnie rozważę przedstawienie „ta strona została przeniesiona, jej nowy adres URL to XXX, wkrótce zostaniesz przekierowany”.
Jeśli nie masz mapowania, wyświetl wiadomość „przepraszam - ta strona została przeniesiona. Oto link do strony głównej” i przekieruj je, jeśli chcesz.
Rejestruj wszystkie przekierowania - zwłaszcza te bez mapowania. Z biegiem czasu dodawaj mapowania ważnych stron.
źródło
wget z Linux-a może być również dobrą opcją, ponieważ są przełączniki na pająka i zmieniają jego wyjście.
EDYCJA: wget jest również dostępny w systemie Windows: http://gnuwin32.sourceforge.net/packages/wget.htm
źródło
Napisz pająka, który czyta każdy kod HTML z dysku i wyświetla każdy atrybut „href” elementu „a” (można to zrobić za pomocą parsera). Należy pamiętać, które łącza należą do określonej strony (jest to typowe zadanie w przypadku infrastruktury danych MultiMap). Następnie możesz utworzyć plik odwzorowania, który będzie działał jako dane wejściowe dla programu obsługi 404.
źródło
Przyjrzałbym się dowolnej liczbie narzędzi do generowania map witryn online. Osobiście korzystałem z tego (opartego na Javie) w przeszłości, ale jeśli wyszukasz w Google hasło „narzędzie do tworzenia map witryn”, na pewno znajdziesz wiele różnych opcji.
źródło