Ikona 04:10 min Ikona Sunrise System 07.02.2020

Moduł mod_rewrite, w który wyposażony jest serwer Apache, służy między innymi do budowy tzw. przyjaznych linków. Jego zastosowanie znacznie wpływa na pozycjonowanie serwisu jak i na czytelność adresów podstron serwisu. W zamian za brzydki, zapełniony zmiennymi adres podstrony (np. index.php?mode=gallery&id=3&subid=19) możemy zyskać adres postaci: gallery/3/9 lub gallery,3,9.html. Jak widać jest on adresem krótszym, łatwiejszym do zapamiętania i wpisania – po prostu przyjaznym.

 

Korzystając z tego przykładu pokażemy jak w prosty sposób budować przyjazne linki.

Do budowy przyjaznych linków potrzebujemy dwóch rzeczy:

przynajmniej minimalnej znajomości wyrażeń regularnych:
Wyrażenia regularne stosowane są do opisu reguł przyporządkowania łańcuchów znakowych.
serwera z obsługą mod_rewrite:
Aby sprawdzić czy serwer obsługuje mod_rewrite wystaczy skorzystać z funkcji phpinfo(). Wyświetli ona informację o obsługiwanych modułach (choć w sporadycznych przypadkach zdarzyć się może, iż mod_rewrite nie jest aktywny, mimo iż jest na liście załadowanych modułów). Większość firm hostingowych (największe: home.pl, nazwa.pl, IQ, Kei) od razu udostępnia obsługę tego modułu.

 

Instrukcje pliku .htaccess umożliwiające działanie takich przyjaznych linków

 

RewriteEngine On
RewriteBase /

RewriteRule ([a-zA-Z0-9-_]+)/([0-9]+)/([0-9]+)/ /index.php?mode=$1&id=$2&subid=$3 [L]
RewriteRule ([a-zA-Z0-9-_]+),([0-9]+),([0-9]+).html /index.php?mode=$1&id=$2&subid=$3 [L]

 

Pierwsze dwie linie instruują Apache’, że uruchamiamy moduł mod_rewrite. Druga linia, nie zawsze potrzebna, wskazuje na podkatalog domeny w jakim następuje przepisywanie adresów. Jeśli posiadasz hosting na serwerach Nazwa.pl jest ona potrzebna, na innych serwerach niekoniecznie.

 

Kolejne dwie linie to instrukcje przepisania adresów podstron. Omówię po kolei poszczególne bloki instrukcji wg schematu:

RewriteRule maska_przepisania docelowy_adres [opcje]
RewriteRule ([a-zA-Z0-9-_]+)/([0-9]+)/([0-9]+)/ /index.php?mode=$1&id=$2&subid=$3 [L]

 

Ten człon polecenia wskazuje na polecenie przepisania adresu. Musi się on zawsze pojawić na początku linii opisującej wzór przepisania.

RewriteRule ([a-zA-Z0-9-_]+)/([0-9]+)/([0-9]+)/ /index.php?mode=$1&id=$2&subid=$3 [L]
RewriteRule ([a-zA-Z0-9-_]+),([0-9]+),([0-9]+).html /index.php?mode=$1&id=$2&subid=$3 [L]

 

Kolejnym elementem polecenia jest opis wzoru adresu za pomocą wyrażeń regularnych. Dokładny ich opis można znaleźć w internecie, tutaj podamy tylko podstawowe informacje korzystając z pierwszego wyrażenia ([a-zA-Z0-9-_]+):

  • okrągłe nawiasy () wydzielają poszczególne wyrażenia regularne,
  • nawiasy kwadratowe [] natomiast wydzielają poszczególne grupy znaków,
  • blok znaków: a-zA-Z0-9-_ wskazuje znaki jakie mogą być użyte w danej grupie znaków. W tym przykładzie mogą to być małe litery a-z, duże litery A-Z, cyfry 0-9 oraz myślnik i podkreślnik. Jak widać na przykładzie kolejne podgrupy wymieniamy po sobie. Oprócz takiego zapisu, jeśli chcemy bardziej ograniczyć zakres znaków możemy wypisać poszczególne znaki, np.:
  • abcdef – jeden ze znaków a-f,
  • ^d – każdy znak inny niż d,
  • . – dowolny znak.
  • znak kontrolny + oznacza krotność znaków w danej grupie:
  • + – jeden lub więcej znaków w bloku,
  • * – zero lub więcej znaków w bloku,
  • {1,3} – jeden, dwa lub trzy znaki w bloku.
  • pozostałe znaki (np. .html) podajemy wprost w postaci jawnej. Jak widać wyżej w przykładzie przed kropką znajduje się znak . Służy on do oznaczania znaków specjalnych (. [ ] ( ) { } ), które bezpośrednio za
  • uważane są jako „normalne” znaki.

 

 

RewriteRule ([a-zA-Z0-9-_]+)/([0-9]+)/([0-9]+)/ /index.php?mode=$1&id=$2&subid=$3 [L]

 

Kolejny blok wskazuje sposób przypisania poszczególnych wyrażeń regularnych do zmiennych w oryginalnych adresach. Kolejność zmiennych ustala się podając kolejne liczby w znakach: $1, $2, $3 itd. Jeżeli kolejność zmiennych w przyjaznym linku różni się od adresu pierwotnego oznaczamy ich kolejność wpisując w kolejności np. $3, $1, $2.

 

RewriteRule ([a-zA-Z0-9-_]+)/([0-9]+)/([0-9]+)/ /index.php?mode=$1&id=$2&subid=$3 [L]

 

Podczas tworzenia przyjaznych linków opcje mogą przyjąć różne wartości

 

  • L – od ang. Last – po znalezieniu pasującej instrukcji RewriteRule serwer wykona przepisanie i zacznie sprawdzać plik .htaccess od początku. Jeśli pominiemy tą opcję serwer po przepisaniu adresu będzie sprawdzał plik .htaccess do końca.
  • NC – od ang. Not Case sensitive – pomijane jest sprawdzanie wielkości liter.

 

Dzięki użyciu przyjaznych linków możemy osiągnąć kilka korzyści:
Lepsze pozycjonowanie serwisu – linki przyjazne wyszukiwarkom,
Łatwiejsze do zapamiętania adresy podstron – linki przyjazne użytkownikom internetu,
Częściowo ukrywamy strukturę serwisu utrudniając możliwy włam – linki przyjazne webmasterom.

Udostępnij:
Ocena artykułu:
Ikona

How useful was this post?

Click on a star to rate it!

Average rating 5 / 5. Vote count: 1

No votes so far! Be the first to rate this post.

Bezpłatny audyt SEO

Sprawdź w 90 sekund, jak Twoja strona radzi sobie w sieci!
Pod lupę bierzemy aż 70 różnych parametrów.

Bezpłatne kursy digital marketingu – online!
Sprawdź
Efektywna firma w necie – kanał You Tube

Wskazówki, rozmowy, inspiracje

Oglądaj na YouTube!

 

Zapisz się do newslettera

Odbieraj regularną dawkę wiedzy i nowości ze świata digital marketingu!

Zero spamu, tylko konkrety!

Zadaj pytanie ekspertowi

Dowiedz się jak być lepiej widocznym w sieci

Bezpłatna wycena Bezpłatny audyt SEO
Udostępnij:
Czytaj także
Ikona

How useful was this post?

Click on a star to rate it!

Average rating 0 / 5. Vote count: 0

No votes so far! Be the first to rate this post.

SEO Ikona 7:30 min 15.10.2020 Wiemy już, czym są intencje użytkownika oraz jaki duży jest ich wpływ na wyniki wyszukiwania w Google. Dziś przekonamy się, na czym polega optymalizacja strony internetowej pod kątem user intent. Dlaczego to tak istotne? Uwzględnienie intencji użytkownika w działaniach SEO podejmowanych w ramach content marketingu będzie bardzo istotne dla pozycjonowania Twojej strony internetowej. Czytaj więcej
Ikona

How useful was this post?

Click on a star to rate it!

Average rating 0 / 5. Vote count: 0

No votes so far! Be the first to rate this post.

SEO Ikona 6:00 min 22.10.2020 User Experience, czyli doświadczenie użytkownika, odzwierciedla wrażenia odbiorcy związane z odwiedzeniem naszej strony. Chcąc zachęcić internautów do korzystania ze strony, warto pamiętać o UX. W poniższym artykule opisane są jego elementy, etapy projektowania oraz wiele innych aspektów, które pozwolą stworzyć witrynę zapewniającą odbiorcy pozytywne wrażenia związane. Czytaj więcej
Ikona

How useful was this post?

Click on a star to rate it!

Average rating 5 / 5. Vote count: 1

No votes so far! Be the first to rate this post.

Co to jest bounce rate i jak sobie z nim radzić? Ikona 04:10 min 10.12.2018 Współczynnik odrzuceń Twojej witryny jest alarmująco wysoki i nie masz pomysłu, co z tym zrobić? Wiemy, co może odstraszać Twoich użytkowników – problem tkwi zwykle w optymalizacji strony lub w nieprzejrzystych treściach, jakie się na niej znajdują. Nie załamuj rąk i sprawdź, jak poprawić wrażenie, jakie wywierasz na swoich potencjalnych klientach. Czytaj więcej
Polecane
Ikona

How useful was this post?

Click on a star to rate it!

Average rating 3.5 / 5. Vote count: 22

No votes so far! Be the first to rate this post.

Co to jest SEO? Ikona 20:00 min 28.09.2023 Optymalizacja strony pod kątem SEO to proces długofalowy. Wymaga umieszczenia każdej nowej treści w odpowiednim miejscu struktury. Jak wesprzeć proces pozycjonowania? Czytaj więcej
Ikona

How useful was this post?

Click on a star to rate it!

Average rating 3.5 / 5. Vote count: 20

No votes so far! Be the first to rate this post.

Samodzielne pozycjonowanie strony Ikona 15:00 min 28.09.2023 Skuteczne pozycjonowanie to także działania off-site, czyli takie, które wykonywane są poza samą stroną internetową. Czytaj więcej

Na dobry start
proponujemy Ci bezpłatnie:

Bezpłatna wycena
Kontakt

Wyprzedź
konkurencję

Zadaj pytanie ekspertowi

739 943 700