Silnik przepisywania adresów URL
GyniO
19.06.2010
0 komentarzy

Dzisiaj zadano mi pytanie Cytat: Czy chciało Ci się rozdzielać każdy artykuł, podstronę http://gynio.pl na osobne pliki html?
Otóż udzielam odpowiedzi: Nie... Gdyby tak rzeczywiście było miał bym spory mętlik w plikach.
Linki może na takie wyglądają, ale kto powiedział, że tak jest naprawdę?
Kod mojej strony to parę plików, a za cały mechanizm strony odpowiada index.php.
Strona opiera się na linkach z końcówką .html, choć ani jeden plik o takim rozszerzeniu nie znajduje się w folderze strony.
No to jak to możliwe, że wyświetla się treść pliku o nazwie, która nie istnieje?
Link kieruje nas na plik o innej nazwie niż rzeczywiście jest to podane. Użytkownik strony nie jest w stanie tego zauważyć.
Taką możliwość przekierowania daje nam MOD REWRITE (regułka .htaccess) i $_GET (php).
MOD REWRITE – pozwala na przechwytywanie żądań i przerobić je gdzie indziej.
PHP, a dokładniej $_GET jest odpowiedzialny za przyjmowanie żądań.
Kod:
index.php
1 | if(isset($_GET['page'])){ |
.htaccess
1 | RewriteEngine on |
Jak widać skrypty są krótkie i proste do zrozumienia.
Jednak skupmy się na linkach.
MOD REWRITE: http://gynio.pl/news.html
PHP: http://gynio.pl/index?page=news
W obu przypadkach wyświetli się nam to sama treść, jedyną różnicą jest sam link.
Wiadomo, że link z MOD REWRITE jest przyjemniejszy dla oczu, przez co stosuje się go do skrócenia adresu strony.
Należy pamiętać, że boty wyszukiwarek biorą pod uwagę wygląd linków, przez co linku pomagają pozycjonowanie strony w wyszukiwarce, o którym warto pamiętać przy budowie większości stron.
MOD REWRITE jest modułem Apache, przy zakupie hostingu lub przy pisania skryptu opartego o MOD REWRITE - proszę zwrócić uwagę czy taki moduł jest zainstalowany.
Inne przykłady użycia:
1 | RewriteRule ^news-([0-9]+)?/ index.php?page=news&strona=$1 [L,QSA] // tylko liczby |
Pytania do artykułu możecie zadawać w komentarzach.
Komentarze
Brak
Dodaj komentarz...

Dodaj komentarz