Narzędzia ułatwiające sprawdzanie poprawności linków

Jedną z najważniejszych rzeczy, o które trzeba zadbać podczas tworzenia stron internetowych jest poprawność adresów url. W tym konkretnym wpisie mam na myśli to aby po kliknięciu na dany odsyłacz serwer zwracał stronę ze statusem 200, albo przynajmniej przekierowanie, które ostatecznie trafi do treści docelowej. Wszelkiego rodzaju błędy (500 czy 404) są wysoce niepożądane tak dla użytkownika strony, jak i z punktu widzenia SEO.

Zadanie to mogą ułatwić narzędzia w stylu linkcheckera lub też dodatku do firefoxa Link Evaluator.

Linkchecker to przyjemne konsolowe narzędzie umożliwiające przetestowanie linków zarówno na stronach www udostępnionych w internecie, jak i tych zapisanych na lokalnym dysku. Istnieje też proste gui do niego, które ułatwia pracę ludziom niechętnie używającym terminala. Instalacja jest prosta w przypadku Ubuntu.

sudo apt-get install linkchecker linkchecker-gui

Oprócz sprawdzania statusów zwracanych przez wszystkie odsyłacze na stronie, linkchecker ma też szereg zaawansowanych opcji w tym sprawdzanie poprawności linków pod kątem zgodności ze specyfikacją html czy css, a także przeskanowanie zwracanej przez odsyłacz treści przez program antywirusowy ClamAV.

Link Evaluator to z kolei dodatek do przeglądarki Firefox. Ma on o wiele mniejszą funkcjonalność niż wspomniane wyżej oprogramowanie nie mniej jego zaletą jest łatwość użycia, wygoda i niezależność od systemu operacyjnego. Po wejściu na daną stronę WWW wystarczy kliknąć prawy przycisk, wybrać z menu kontekstowego „Evaluate Links” i poczekać aż wszystkie url-e na danej podstronie zostaną sprawdzone. Poprane adresy podświetlane są na zielono, z kolei na czerwono zaznaczane są nieprawidłowe linki. Wybranie z menu kontekstowego opcji „Link Evaluator Control Panel” otwiera okienko z opcjami dodatku, ale też z monitorem, w którym możemy obserwować przebieg pracy programu. Znalazłem kilka dodatków do firefoxa oferujących podobną funkcjonalność ale tylko Link Evaluator działał bezbłędnie i uwzględniał przekierowania.

Testowałem też kilka narzędzi online, ale żadne nie zwracało satysfakcjonujących wyników.

htaccess z www czy bez

Sporadycznie – tworząc nowy serwis, czy stronę internetową publikuję ją na serwerze. Dążąc do optymalizacji pod względem SEO staram się aby serwis dostępny był tylko pod jednym adresem. Dokładnie rzecz ujmując to pod wieloma, ale przy wejściu z alternatywnego adresu użytkownik powinien zostać przekierowany na adres główny, a przy okazji powinien zostać wysłany nagłówek 301 Moved Permanently. Najczęściej alternatywne adresy występują w postaci z przedrostkiem (subdomeną) www i bez. Dla przykładu adres example.com może też wystąpić w wersji www.example.com co wydaje się być jednym i tym samym a tym czasem to dwa zupełnie różne adresy.

Korzystając z dobrodziejstw serwera Apache i tzw. mod-rewrite-a możemy do tego celu użyć plików .htaccess. Ponieważ rzadko modyfikuję wyżej wspomniane pliki, najczęściej wpisując w nie znane i wypróbowane regułki, lubię kiedy są możliwie uniwersalne. W tym przypadku udało mi się znaleźć przykłady, które świetnie się sprawdzają i z uwagi na swą uniwersalność nie wymagają modyfikacji po przekopiowaniu na inny serwer gdzie podpięta jest inna domena.

Wymuszenie subdomeny www…

RewriteCond %{HTTP_HOST} !^www. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

i na odwrót.

RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]