Ta strona stosuje pliki cookies. Poczytaj co to jest w polityka cookies

Kącik początkującego
Dobre programy - tutoriale
Programy biznes
Programowanie PHP

nauczycieli Mod Rewrite - przyjazne linki url

      Mod Rewrite to bardzo przydatny mechanizm, który może służyć w wielu różnych celach, jednak jedną z najważniejszych dla właściciela strony jest możliwość zamiany adresów z parametrami na ładniejsze, bardziej eleganckie i jak to by powiedział spec od SEO bardziej przyjazne dla wyszukiwarek.

     W jaki sposób działa mod rewite? Pozwala on na zmianę adresów typu:
index.php?akcja=5&dzial=10&temat=bieg-na-100-metrow

na ładniejszy, np. bieg-na-100-metrow,5,10.html

Co nam to daje?

    Oprócz względów estetycznych takie uproszczenie linku sprawia, że łatwiej jest tę podstronę zapamiętać, przesłać znajomemu a także jest ona bardziej przyjazna robotom wyszukiwarek takich np. jak Google.

W jaki sposób "zamontować" go do swojej strony?

  • Przede wszystkim musimy sprawdzić, czy serwer daje możliwość uruchomienia mod rewrite,
  • następnie utworzyć na serwerze w katalogu, gdzie jest bezpośrednio strona  plik .htaccess a w nim musimy wpisać odpowiednią formułkę, która zidentyfikuje zmienne i przekaże wartości tam do strony, by wyświetlone było to co ma być.
  • przerobić swoją stronę, by wszędzie (tzn. np. tam gdzie jest menu) gdzie są wyświetlane linki były one zamieniane na nowy format, czyli np. tresc-arytkulu,numer_dzialu.html - w praktyce wspominane powyżej bieg-na-100-metrow,5,10.html. W PHP może to być np.:
    echo '<a href="'.$tytul_artykulu.','.$akcja.','
    .$temat.'">.$tytul.'</a>';

    Oczywiście zmienną $tytul_artykulu uzyskujemy poprzez zamianę spacji, oraz wszystkich innych znakow z prawdziwego tytulu, czyli zmiennej $tytul.

Jak sprawdzić, czy serwer obsługuje mod rewrite? Przykład

     By nieco bardziej wyjaśnić temat podam plik htaccess działający na np. serwerze Linuxpl:

RewriteBase /
Rewrite Engine ON
RewriteRule ^([A-Za-z0-9-]*).html index.php?akcja=$1

Zapisujemy go w katalogu głównym obok pliku index.php, którego zawartość może być taka:

 <a href="akcja-zawiera-ten-tekst.html">kliknij na tym linku i zobacz 
na adres url swojej strony oraz porównaj go 
z poniższym
:a><br><br
>

<?
echo 
"Zmienna akcja zawiera: ".$_GET['akcja'
];
?>


<
br><br>Zmień w adresie przeglądarki z "akcja-zawiera-ten-tekst.html" na inny np"akcja-zawiera.html" i zobacz jak zmienia się powyższa 
zmienna
Jeśli tak to mod Rewrite działa prawidłowo
!

Ustawienia dla Webserv:

Dla serwera lokalnego np. webserv musimy zmienić w RewriteBase znaczek / na odpowiedni adres np.
RewriteBase /~joomla/

Oczywiście jeśli instalujemy na serwerze naszą stronę z Mod Rewritem wówczas również wpiszemy RewriteBase /podkatalog/

Za pomocą RewriteRule ustalamy reguły, które tłumaczą, gdzie są zakodowane poszczególne zmienne a adresie url, by dotarły one w odpowiednie miejsca w skrypcie.


Zobacz inne:

copyright © Pcwiedza.pl