k+

.htaccess i jego uroki

{ 05.03.2007, 11:12 }

tagiTagi: 

htaccessPrzekierowanie URL/przepisywania adresu w pewnym momencie stają się w webmasteringu wręcz koniecznym elementem, bo adresy w rodzaju http://strona.pl/?id=cos&op=costam&add=1,34&uasd=344535 są po prostu brzydkie i niepraktyczne – a to ciężko podać taki link znajomemu, a to wyszukiwarki mogą mieć problemy z zaindeksowaniem strony.

Można użyć metody PATH_INFO bądź mod_rewrite. Ta pierwsza jednak jest niewygodna w użyciu, gdyż wymaga edycji poza linkami w naszych skryptach także odczytywania wszystkich wartości… Jeśli nie mamy dostępu do pliku .htaccess, to jedyne wyjście – ja jednak nie będę się o nim rozpisywał (polecam art na php.pl na w/w temat). Bo jeśli mamy – cieszymy się jego dobrodziejstwem.

Pracę nad plikiem .htaccess zaczynamy… tworząc pusty plik o tej nazwie w katalogu, w którym ma działać nasza strona z przekierowaniami. Nasz kod będzie działał w obrębie foldera i wszystkich jego podfolderów, ale do każdego z nich możemy wstawić kolejne .htaccess’y, którymi zmienimy ustawienia tylko dla nich samych.

Okej, utworzyliśmy plik, co dalej? Oczywiście powinniśmy wstawić do niego odpowiednią treść. Załóżmy że linki w naszej stronie wyglądają tak: http://strona.pl/?id=cos&wrt=wartosc . Przepiszemy je, by działały ładnie- np http://strona.pl/cos/wrt.

RewriteEngine On

RewriteRule ^/([0-9]+)/([a-z0-9]+)$ index.php/?id=$1&wrt=$2

Może się to wydawać straszne, ale to nic trudnego. Pierwszym poleceniem informujemy serwer, że zamierzamy używać mod_rewrite. Następnym wykonujemy właściwą podmianę – sprawiamy że, adres wprowadzony w postaci /cos/wrt będzie oznaczał dla skryptu to samo, co nasze index.php/?id=cos&wrt=wartosc. Znak “^” rozpoczyna naszą wartość, “$” zaś kończy. Ciąg “[0-9]+” oznacza, że argument obsługuje liczby, zaś ” [a-z0-9]+” małe litery i liczby. Jeśli chcemy dodać jeszcze np obsługę wielkich liter, po prostu wstawiamy “[a-zA-Z0-9]+”.

Można oczywiście tworzyć inne linki, jeśli nie chcemy tak podmieniać całego kodu, np:

RewriteEngine On
RewriteRule ^akcja/(.*)$ index.php?id=akcja&op=$1

Takie zastosowanie jest o tyle lepsze, że nie zmienia na sztywno wszystkich wpisywanych w przeglądarce adresów i pobiera tylko jeden argument (“(.*)” – czyli wszystko), dzięki czemu nie będzie problemów z uznaniem znaku “/” za część wartości, co się czasem zdarza.

Uwaga – pamiętajmy, że mod_rewrite nie myślą i trzeba im pomóc. Powyższy kod zamieni linki na akcja/op – jeśli chcemy by działało także akcja/op/ , musimy dopisać linijkę:

RewriteRule ^akcja/(.*)/$ index.php?id=akcja&op=$1

Ciekawostką jest, że mod_rewrite nie karze nam używać slashy (“/”) jako przerywników – równie dobrze mogą to być przecinki itp znaczki. Tylko wówczas powraca nam problem błędnego indeksowania przez wyszukiwarki, więc odradzam odejście od “klasycznych” linków.

Mod_rewrite to chyba najużyteczniejsza z funkcji pliku .htaccess, ale nie jedyna. W pliku typ dopisujemy takie rzeczy, jak ustawienia plików błędów:

ErrorDocument 400 /400.php
ErrorDocument 401 /401.php
ErrorDocument 403 /403.php
ErrorDocument 404 /404.php

i inne rodzaje przekierowań:

Redirect 302 /art http://innastrona.pl/

Czyli proste przepisanie -> wpisanie adresu http://strona.pl/art przeniesie nas na http://innastrona.pl. Wyróżniamy dwa rodzaje takich przekierowań – 301 i 302 – a różnią się one:

301 Moved Permanently
Trwale przeniesiony – żądany zasób zmienił swój URI i w przyszłości zasób powinien być szukany pod wskazanym nowym adresem.

302 Moved Temporarily Found
Strona przeniesiona czasowo znaleziono – żądany zasób jest chwilowo dostępny pod innym adresem a przyszłe odwołania do zasobu powinny być kierowane pod adres pierwotny.

Za pomocą .htaccess możemy jeszcze ustawiać znacznie większą ilość funkcji – jak blokowanie/udzielanie dostępu dla konkretnych IP i wiele, wiele innych. Polecam samodzielnie poszukać materiałów, a zacząć można od tutorialu na home.pl.

PS: Niniejszym uroczyście otwieram nową kategorię na dRaiser’s helloworld – Webmastering :).

Web, Webmastering Dodaj komentarz

Mini

feed

2010 (1)

Wszystkiego najlepszego, oczywiście. Aby w górę. :)

Dobry dzień dla graczy (+)

Subiektywne growe newsy dnia:

* filmik promocyjny z Wiedźmina 2 opuścił studio CDPR
* jutro pierwszy epizod Tales of the Monkey Island będzie dostępny za free ( http://www.telltalegames.com/ ), a remake Secret of Monkey Island ma obniżkę 50% na Steamie (w przeliczeniu 19zł!)
* demo NFS: Shift w sieci http://www.gry-online.pl/S013.asp?ID=48311
* pecetowe premiery Batman: Arkham Asylum, Resident Evil 5 i NFS: Shift.
Ciekawy dzień dla graczy :)

Na czym polega praca Rzeźnika drzew (+)

Spragnionych nowej treści zapraszam na Strefę RPG, gdzie można przeczytać kolejną recenzję mojego autorstwa – opisuję tym razem “Rzeźnika drzew”, zbiór opowiadań Andrzeja Pilipiuka. Zachęcam do lektury (i dyskusji!) i proszę jeszcze o trochę cierpliwości – obiecane zmiany wakacyjne i częstsze pisania już wkrótce, aktualnie awansowałem na studenta i wciąż odpoczywam. :)

Antychryst (+)

Antychryst_Larsa_von_3234554

Zainteresowany ciekawą tematyką i scenami specjalnymi utworzonymi ze współpracą z Platige Image, udałem się na “Antychrysta” Larsa von Triera. Niestety, okazało się być to pomyłką, zwłaszcza, że oglądałem go z przedstawicielką płci pięknej – miał być horror, być może w jakiś sposób ambitniejszy od innych przedstawicieli tego gatunku. Tymczasem film nie dość, że nie był straszny, to nadzwyczaj okrutny i obrzydzający w pewnych momentach, a co gorsza – bez żadnego przesłania.

Nie mam nic przeciwko kontrowersji, ale niech ma ona chociaż jakiś sens.

Relacja z prezentacji Dragon Age (+)

I o to jest – zapraszam!

Dragon Age

Dragon Age: Początek – relacja z pokazu! (+)

Już 8 lipca wspólnymi siłami – moimi i pozostałych redaktorów StrefaRPG – będziecie mieli okazję dowiedzieć się wielu ciekawych informacji na temat nadchodzącego cRPG – DA:P. Zapraszam!

Krótka przerwa (+)

Krótka, bo trochę ponad tygodniowa prawdopodobnie – do 1 lipca jestem zupełnie bez dostępu do Internetu, potem zaś pracuję… zobaczymy, co będzie.

Bądź ambitny! [Mini] (+)

Bo dla chcącego nic trudnego! :)

Assassin 2 (2)

Szykuje się niezłe skakanie od Ubisoftu – po stosunkowo prostym, ale bardzo satysfakcjonującym Prince of Persia otrzymamy drugą część z planowanej trylogii o zabójcy z zakonu Assassynów. Spodziewałbym się poprawek w rozgrywce i rozbiciu monotonii, ale nie liczyłbym na specjalną zmianę w samym stylu gry – Ubi nie robi skradanek, za to robi świetne platformery, i na taką grę liczę. Walka z Templariuszami w Wenecji to jeden z murowanych hitów tego roku – wypada nań czekać także z powodu niezwykle tajemniczego zakończenia pierwszej części gry.

Trailer (z konferencji E3):

AC2trauler

Adtaily też u mnie (+)

adtailyStało się – i ja dołączyłem do testów platformy reklamowej przeznaczonej dla blogów i małych serwisów, czyli Adtaily.com. Aktualna cena wyświetlania boksu za dzień wynosi niecałe 2zł, zobaczymy po 2-3 dniach, w którą stronę należy ją ruszyć.

Zachęcam do korzystania – tak prostego i wygodnego systemu jeszcze nie było :)

Edycja: Cena została zmniejszona (chciałem zrobić to od razu, ale miałem problemy techniczne) do poziomu 2,85zł. Na razie testowo – zapraszam do wykupu!

Edycja2: Cena jeszcze niższa! 1zł + prowizja dla Adtaily – reklama w cenie batonika :)

  • Archiwum
  • -->
    jacek piekara openid PHP serial Wordpress torrent manga programowanie grafiki tvn24 blip web2.0 Sprzęt starcraft rpg General draiser.gamedev.pl blogosfera 3d RSS małe-i-przydatne blizzard reklama g2bp 2d Mozilla wiedźmin absurd Film filmy placebo fallout anime programy Komiks dns imprezy Youtube Google świat tv Fun mp3 crpg Internet Gry