www.eprace.edu.pl » pozycjonowanie-stron-www » Pozycjonowanie w systemach tworzonych dynamicznie » Metody pozycjonowania w systemach dynamicznych

Metody pozycjonowania w systemach dynamicznych

Google już od dłuższego czasu indeksuje strony generowane dynamicznie, w tym strony ASP czy PHP oraz strony ze znakami zapytanie w adresie URL. Zaleca się jednak, aby liczba parametrów występujących w adresie URL nie przekraczała czterech. Mimo wszystko strony dynamiczne utrudniają indeksację i mogą zostać pominięte lub źle zaindeksowane. Istnieje tutaj ryzyko „zapętlenia się” robota indeksującego.

W przypadku zauważenia błędów w indeksacji stron (można to sprawdzić w wynikach wyszukiwania) lub gdy strony nie zostają w ogóle zaindeksowane Google sugeruje stworzenie ich statycznych kopii. Oczywiście w takim przypadku trzeba koniecznie użyć pliku robots.txt, aby zablokować dostęp do stron dynamicznych. Dzięki temu nie będziemy mieli do czynienia z duplikatami stron uznawanymi za spam.

Dodatkowo przydatna może być mapa witryny, którą można zgłosić za pomocą usługi Google Sitemaps. Umożliwia ona zgłoszenie wszystkich adresów URL do indeksu Google oraz otrzymywanie raportów dotyczących widoczności stron w Google. Usługa ta nie gwarantuje jednak uwzględnienia wszystkich stron mapy witryny w wynikach wyszukiwania.

W związku z częstymi problemami z indeksacją stron dynamicznych, szczególnie w przypadku dużych serwisów, warto rozważyć dwa sposoby pozwalające na lepszą widoczność w wyszukiwarkach. Pierwszy z nich to stworzenie alternatywnego systemu stron statycznych, omówiony on zostanie w następnym podrozdziale na przykładzie projekty firmy xtech.pl. Drugi to wykorzystanie narzędzia pozwalającego na „przepisywanie” adresów. Dla serwera Apacze narzędzie to nazywa się „mod_rewrite”, a dla IIS – ISAPI_Rewrite (URL Rewrite engine for IIS). Idea ich działania jest podobna, poniżej przedstawiony został opis „mod_rewrite”.

Mod_rewrite

Moduł ten powala na zamianę adresów URL na bardziej „przyjazne” dla robotów internetowych oraz dla użytkowników serwisu. Przykładowo pozwala on na zamianę adresu:

http://www.strona-firmowa.pl/produkty/wyswietl.php?id=572

na: http:///www.strona-firmowa.pl/produkty/572

Dzięki temu możemy nie tylko stworzyć proste linki, ale również ukryć przed użytkownikiem informację, w jakim języku napisane są skrypty.

Aby rozpocząć przepisywanie adresów utworzyć w katalogu głównym swojego serwera plik .htaccess oraz umieścić w nim odpowiednie wpisy.

Jeśli nie nie pojawi się błąd nr 500 to znaczy, że moduł został zainstalowany.

Oto przykład prostego przepisania (linia .htaccess musi być pusta!):

RewriteEngine on

RewriteRule ^stary\.html$ nowy.html

Pierwsza linia zawiera informację o aktywacji mod_rewrite, natomiast druga – regułę przepisywania. Domyślnie przepisywany jest adres URL wywołania strony. Oto składnia:

RewriteRule maska_przepisania docelowy_adres [opcje]

Reguła szukać będzie szukać pliku o nazwie stary.html i jeśli go znajdzie zamieni na adres: nowy.html. Definicje maski przepisania konstruowane są za pomocą wyrażeń regularnych. Przykładowo [0-9] to znak z podanego zakresu; (…) to grupowanie; $1, $2,… to parametry. Warto tutaj skorzystać z dokumentacji Perla.

Bardziej zaawansowany przykład:

RewriteEngine On

RewriteRule ^produkt/([0-9][0-9])/$produkt.php?id=$1

Szukany ciąg znaków zaczyna się od „produkt/”, po nim następują dwie cyfry. Zatem przepisanie wygląda następująco:

produkt.php?id=52 zamienia się w: produkt/52/

Znaki ^ oraz $ informują o dopasowywaniu od początku do końca tekstu źródłowego. Jeśli je pominiemy to wyrażenie regularne będzie szukać wzorca w dowolnym miejscu, np. maska ^/nowe/$ nie będzie działać na tekst /produkty/nowe/promocja, ponieważ tekst powinien zawierać tylko „/nowe/”. Natomiast maska /nowe/ będzie pasować.

Aby zapobiec zapętleniu się reguł należy pamiętać, iż po przepisaniu adresu, następuje ponowne wywołanie strony - już z nowym adresem – wtedy ponownie zostają wykonane reguły zapisane w pliku .htaccess. Należy zatem tak stworzyć reguły, aby raz przepisany adres nie był kolejny raz przepisywany przez tę samą regułę np.:

RewriteEngine On

RewriteRule (.*) /pokaz.php/$1

Pierwszy przebieg:

tekst: produkty/52

wynik: /pokaz.php/produkty/52

Drugi przebieg:

tekst: /pokaz.php/produkty/52

wynik: /pokaz.php/pokaz.php/produkty/52

Reguła ta będzie wykonywana w nieskończoność. Oto poprawna wersja reguły:

RewriteEngine On

RewriteRule ^([^.]*)$ /pokaz.php/$1

Pierwszy przebieg wygląda podobnie jak w poprzednim przykładzie, natomiast drugi zwróci błąd, gdyż przepisywany tekst zawiera już kropkę. Zwykle kropka pojawia się tylko w nazwie pliku – w tym przypadku jest to pokaz.php.

Inną metodą jest użycie RewriteCond w celu sprawdzenia, czy adres nie zawiera rzeczywistego katalogu i nazwy pliku - jeśli tak, oznacza to, że posiadamy już adres w ostatecznej postaci.

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule (.*) /pokaz.php/$1

Oba dopasowania RewriteCond sprawdzają zawartość wywołanego adresu - pierwsze sprawdza, czy adres nie prowadzi do pliku (parametr -f), natomiast drugie czy nie jest to katalog (parametr -d). Po pierwszym przebiegu i wykonaniu reguły zmienna REQUEST_FILENAME będzie zawierać już nazwę pliku tj. pokaz.php.



komentarze

Copyright © 2008-2010 EPrace oraz autorzy prac.