mod_rewrite ir mod_perl

Šiandieną nemažai laiko praleidau skaitinėdamas apie Apache modulį mod_rewrite, mat užsinorėjau šioje svetainėje gražių URL’ų (Tarkim http://www.lietuvoje.lt/~moxliukas/browse/42 vietoj įprastinio http://www.lietuvoje.lt/~moxliukas/index.pl?id=42). Galingas daiktas.

Benaršydamas Apache modulių aprašymus radau labai neblogą svetainę refcards.com, kurioje galima atsisiųsti glaustus Apache, o svarbiausia mod_perl komandų sąrašus. Labai naudinga turėti pasidėjus po akimis. Hmmm… reiktų ir Perl bei PHP kažką panašaus padaryt… Ir aišku apie regexpus.

Comments Closed

9 Comments

  1. o buna zmoniu, kuriems kelios mikrosekundes amzinybei prilygsta ;) biskuliuka ilgiau :)

  2. tokam smulkiam darbeliui geriau neprasidėti su mod_rewrite ,

    įsijungi apache 1.3.* MultiViews ant apache 2.0 yra irgi spec raktelis, ir tada norint padaryt :

    http://kazkas.com/foo/23

    sukuri savo foo.pl skripto šmotą, ir su juo parsini url'ą

    (čia iš php praktikos , nes nežinau ar mod_perl'as turi tokios

    informacijos)

    išsiparsinęs url'ą gali tuos 23 interpretuot kaip nori.

    usio.

    o mod_rewrite reikalingas daugiau sudėtingesniems atvejams kai reikia reikšmes perstatinėti iš vienos vietos į kitą, galbūt keisti formatą o arba su wild characteriniais DNS'ais : SESSIONID3215465465465465464654.moxliukas.lt/blog/23/8 serve rewraitini į: http://www.moxliukas.lt/blog.pl?id=23&pid=8&sid=SESSIONID3215465465465465464654

  3. Aišku Perlas gali ir per $ENV{PATH_INFO} pasiimt (jei CGI) arba per $r->path_info() (jei per mod_perl ir $r yra Apache::Request objektas)

    Tiesiog čia tik skaitinėjau apie galimybes ir neturėjau noro perrašinėt patį Perl kodą. O .htaccess užteko įdėti keletą eilučių nekeičiant Perlinio kodo:

    RewriteEngine on

    RewriteRule ^browse/([0-9]+) /~moxliukas/index.pl?id=$1

    RewriteRule ^browse$ /~moxliukas/index.pl

    RewriteRule ^browse/(.*) /~moxliukas/$1

Comments are closed.