Apple Facebook Google Microsoft badania bezpieczeństwo patronat DI prawa autorskie serwisy społecznościowe smartfony

Koniec z długimi, trudnymi do zapamiętania linkami! Mod_rewrite - zobacz jak to robią specjaliśc

Artykuł sponsorowany 11-01-2007, 09:13

Posiadasz stronę zrobioną w języku PHP, której linki ciągną się przez cały pasek adresowy przeglądarki? Przeczytaj jak w prosty sposób ułatwić korzystanie użytkownikom z Twojego serwisu. Dzięki temu artykułowi poznasz sposób na stworzenie "przyjaznych linków", które z pewnością sprawią, że będą one proste oraz łatwe do zapamiętania.

Mod_rewrite to moduł serwera www (apache), którego funkcją jest przepisywanie adresów.
Przykładowo, jeśli mamy adres w postaci: domena.pl/index.php?id=wiadomosci, dzięki modułowi link do tej samej strony może mieć postać: domena.pl/wiadomosci. Prawda, że dużo prościej?

Dodatkową zaletą dynamicznego przepisywaniu linków przez mod_rewrite'a jest uzyskanie wyższej pozycji w wyszukiwarkach, oraz szybsza indeksacja poszczególnych podstron witryny.

Nie każda firma hostingowa udostępnia ten bardzo przydatny moduł w ramach swoich usług więc zanim postanowisz wykorzystać tę funkcję sprawdź czy jest ona dostępna u Twojego dostawcy. Korzystać z niej można w ramach każdej z opcji w Kei.pl - firmie specjalizującej się w nowoczesnych rozwiązanych hostingowych.

W jaki sposób ułatwić użytkownikom korzystanie z mojej strony?

Przykład 1:
Jeśli zdecydowaliśmy się na zastosowanie modułu, musimy utworzyć na serwerze, w katalogu na który wskazuje nasza domena, plik .htaccess. Pozwala on na pewne zmiany w konfiguracji serwera www. Zmiany opcji zapisane w tym pliku, widoczne są dla katalogu w którym się znajduje oraz wszystkich podkatalogów. Oprócz konfiguracji modułu mod_rewrite, możliwe jest rówież definiowanie własnych stron błędów, zabezpieczenie dostępu do katalogów hasłem, a także zmiana pewnych ustawień PHP, poprzez użycie "php_value".

Następnym krokiem będzie włączenie modułu, czyli wpisanie w pliku .htaccess:
RewriteEngine On

Stwórzmy teraz prostą regułkę dla mod_rewrite'a:
RewriteRule ^wiadomosci$ /index.php?id=wiadomosci

Powyższa reguła mówi, że jeśli zostanie wpisany adres zawierający wyraz "wiadomosci", ma on zostać zamieniony na: domena.pl/index.php?id=wiadomosci.

Przykład 2:
Zajmijmy się teraz nieco trudniejszym przykładem. Załóżmy, że mamy 200 linków w postaci jak wyżej, tylko wyraz "wiadomości" zastępujemy innymi wyrażeniami, np. "aktualności", itp...
Możemy oczywiście wpisać 200 razy RewriteRule......., ale dzięki możliwości tworzenia zmiennych, na szczęście nie musimy tego robić. Udoskonalmy nasz przykład o użycie zmiennych:
RewriteEngine On
RewriteRule ^([^-]+)$ /index.php?id=$1


Nawiasy okrągłe mówią, że wyrażenie znajdujące się w nich mają być użyte jako zmienna. Zmienne przekazywane są w postaci $1, $2, itd. w zależności ile wyrażeń wpisanych mamy w nawiasach, np:

RewriteRule ^([^-]+)/([^-]+)$ /index.php?id=$1&strona=$2

Jeśli wpiszemy: domena.pl/wiadomosci/2, fraza "wiadomości" zostanie podstawiona pod zmienną $1, natomiast wyrażenie "2" pod zmienną $2.
Wpis "[^-]+" oznacza możliwość wpisania dowolnego ciągu znaków o dowolnej długości. Czyli wyrażenie zostanie spełnione bez względu na to, czy użyjemy małych czy dużych liter, cyfr oraz znaku "_".
Możliwe są również zapisy:
[a-z]+ - same małe litery,
[0-9]+ - cyfry,
[A-Z]+ - duże litery,
oraz łączenie powyższych, np:
[a-z0-9]+ - małe litery oraz cyfry.


Przykład 3:
Oczywiście linii z regułami może być więcej niż jedna. Przykładowo jeśli chcemy wywołać dwie strony:
domena.pl/wiadomosci/2
oraz
domena.pl/wiadomosci

użyjemy wpisu:
RewriteEngine On
RewriteRule ^([^-]+)/([^-]+)$ /index.php?id=$1&strona=$2 [L,NC]
RewriteRule ^([^-]+)$ /index.php?id=$1


Przykład 4:
Dla reguł dostępne są także opcje, które wpisujemy na końcu w nawiasach kwadratowych.
[L] - zatrzymuje wykonywanie dalszych regułek (ustanawia linijkę jako ostatnią),
[OR] - w przypadku, gdy dana strona nie zostanie odnaleziona, przeszukiwane są kolejne linijki z regułami,
[NC] - przy porównywaniu nie jest brana pod uwagę wielkość liter,
[R] - przekierowanie linku według podanej wartości, np: R=301.

Przykładowa linijka będzie wyglądać następująco:
RewriteRule ^([^-]+)/([^-]+)$ /index.php?id=$1&strona=$2 [NC]

Jeśli chcemy użyć więcej niż jednej opcji:
RewriteRule ^([^-]+)/([^-]+)$ /index.php?id=$1&strona=$2 [OR,NC]

Przykład 5:

Bardzo przydatne okazuje się tzw. przekierowanie 301. Oznacza ono zmianę adresu strony www, ewentualnie zmianę położenia jakiegoś pliku w strukturze katalogowej dane strony. Przykładowo jeśli strona znajdowała się pod adresem adresfirmy.com.pl, natomiast aktulnie znajduje się pod adresfirmy.pl, dobrze jest zrobić przekierowanie 301.
Wykorzystując je, wyszukiwarki (np. Google) powinny przeindeksować stronę wraz z zawartością pod nowy adres, jednocześnie zachowując PageRank starej strony.

RewriteEngine on
RewriteCond %{HTTP_HOST} ^adresfirmy.com.pl
RewriteCond %{HTTP_HOST} ^www.adresfirmy.com..pl
RewriteRule ^(.*)$ http://www.adresfirmy.pl/$1 [R=301,L]



Sytuacje wyjątkowe:
Jeśli w naszej aplikacji, którykolwiek skrypt używa sesji, dodanie przyjaznych linków może nie przynieść oczekiwanych rezultatów ze względu na doklejenie do linku tzw. identyfikatora sesji.

Opcję tą można wyłączyć poprzez użycie wpisu w pliku .htaccess.
php_flag session.use_trans_sid off

Wyłączenie może nie być możliwe jeśli w konfiguracji serwera zabroniono wykonywania takich operacji - jeśli tak jest, naszym oczom ukaże się błąd 500 - Internal Server Error. Konfiguracja serwerów Kei.pl zapewnia możliwość wykorzystania również tej funkcji.

Tworzenie reguł, choć wydaje się z początku dość trudne i czasochłonne na pewno szybko przyniesie wymierne korzyści. Warto poświęcić trochę czasu, aby sprawić by serwis był bardziej przejrzysty, przyjazny użytkownikom i nowoczesny.

Masz pytania, lub wątpliwości? W Kei.pl zawsze możesz liczyć na pełne wsparcie administratorów. Jesteśmy do dyspozycji 7 dni w tygodniu, 24 godziny na dobę, by służyć Ci pomocą. Pamiętaj, Kei.pl to Niezawodny Partner w Sieci.

logo KEI

Aktualności | Porady | Gościnnie | Katalog
Bukmacherzy | Sprawdź auto | Praca


Artykuł może w treści zawierać linki partnerów biznesowych
i afiliacyjne, dzięki którym serwis dostarcza darmowe treści.

              *              



Ostatnie artykuły:







fot. vecstock