Powszechnie panuje stereotyp, że wyszukiwarka Google słabo radzi sobie z linkami typu: nazwastrony.pl?id=skrypty&go=php. Jest to błędne myślenie – amerykański robot w tej chwili dobrze już indeksuje tego typu zbudowane strony. Nie mniej jednak warto znać, chociaż w podstawie, zasady przyjaznego przepisywania linków, czyli mod_rewrite. Na samym początku powinniśmy sprawdzić czy nasz serwer ma włączony system przyjaznych linków. W tym celu musimy posłużyć się funkcjąphpinfo(). W wyświetlonym przez naszą przeglądarkę oknie wyszukujemy przedział: Loaded Modules, a następnie tam szukamy informacji o mod_rewrite.
Jeżeli wszystko przebiegło po naszej myśli i mamy uruchomioną na serwerze obsługę przyjaznych linków możemy przystąpić do kolejnego kroku. Jeśli natomiast usługa przepisywania jest niedostępna, musimy poprosić o jej włączenie naszego administratora.
Przyjmijmy, że na naszej stronie (zbudowanej oczywiście przy pomocy php) posiadamy linki typu:
1 2 | www.kortas.info?kategoria=skrypty&typ=php www.kortas.info?kategoria=skrypty&typ=ajax |
Dzięki możliwości przepisywania uzyskamy efekt:
1 2 | www.kortas.info/skrypty/php/ www.kortas.info/skrypty/ajax/ |
Przez ten zabieg adres strony będzie czytelniejszy nie tylko dla wyszukiwarek ale i dla potencjalnego internauty.
Na początek tworzymy nowy plik o nazwie .htaccess i zapisujemy go w głównym katalogu ze stroną. Uzupełniamy go następującym kodem:
1 2 3 4 | RewriteEngine On RewriteBase /folder_ze_strona/ RewriteRule ^/?(.*)/(.*)/$ index.php?kategoria=$1&typ=$2 [NC,L] ---tutaj pozostawiamy pusty wiersz--- |
A teraz krótkie omówienie. Pierwsza linijka informuje serwer, że zostanie użyta metoda mod_rewrite. W drugim wierszu deklarujemy ścieżkę do folderu z naszą stroną w odniesieniu do głównego katalogu (np. /folder1/folder2/). Jeżeli natomiast nasza strona znajduje się w głównym katalogu wstawiamy znak /. W kolejnym wierszu informujemy serwer jak będą wyglądały przepisane linki. Symbol (.*) odpowiada za użycie dowolnych znaków z zakresu. Następnie wpisujemy index.php, a potem podmieniamy nasze zmienne, przypisując je do nowych (koniecznie musimy użyć takiego formatu nowych zmiennych: $1, $2, $3 itd.). Na koniec pozostawiamy jeden pusty wiersz.
Teraz pozostaje nam zamienić wszystkie linki w naszym kodzie html na takie:
1 2 | <a href="folder_ze_strona/skrypty/php/">php</a> <a href="folder_ze_strona/skrypty/ajax/">ajax</a> |
W miejscu gdzie wpisałem folder_ze_stroną należy wpisać tą samą ścieżkę co w drugim wierszu w pliku.htaccess. Pamiętajmy także o zmianie ścieżki w odnoszącej się do naszego arkusza CSS – tam także musimy dodać na początku nazwę naszego folderu, w którym znajduje się strona.
1 | <link type="text/css" rel="stylesheet" href="folder_ze_stroną/arkusz.css"> |
W razie jakichkolwiek problemów z metodą przepisywania linków mod_rewrite proszę o kierowanie swoich pytań bezpośrednio w komentarzach pod artykułem.
A co jakbyśmy chcieli w adresach podstron mieć html na końcu? (nie wpisów, a podstron)
A co jeśli mod_rewrite nie jest włączony na serwerze ? Jak go aktywować przez cpanel ?
To wszystko zależy od dostawcy hostingu. Na początku proponowałbym skontaktować się z biurem obsługi klienta, aby włączyli mod_rewrite lub poinstruowali jak to zrobić.