Na navigaci | Klávesové zkratky

Translate to English… Ins Deutsche übersetzen…

Víte, komu ublížil mod_rewrite?

Schválně, který software má v dokumentaci uvedeno, že se jedná o voodoo? No jistě, jde o mod_rewrite. Ze zkušenosti mohu říci, že programátoři se dělí do dvou skupin:

  1. ti, kteří mod_rewrite nerozumí
  2. ti, kteří si myslí, že mod_rewrite rozumí, avšak mýlí se

Do které skupiny patříte vy? Zkuste nahlédnout do svých souborů .htaccess a podívejte se, zda vám u pravidel pro přesměrování (příznak R) nechybí také příznak NE (noescape)?

Vysvětlím na příkladu: do kořenového adresáře webu www.example.cz vložím soubor .htaccess s pravidlem pro přesměrování:

RewriteEngine On
RewriteRule .* http://www.example.com/$0 [R=301] #tohle je spatne!

Server pak přesměruje

  • z http://www.example.cz/index.php?title=d%C3%ADvka (parametr title obsahuje slovo dívka)
  • na http://www.example.com/index.php?title=d%25C3%25ADvka (parametr title obsahuje řetězec d%C3%ADvka)

Jak vidíte, mod_rewrite ublížil dívce! Je to jeho přirozené chování, aby to nedělal, musíte mu říct NE:

RewriteEngine On
RewriteRule .* http://www.example.com/$0 [R=301,NE] #tohle uz je spravne

Komentáře

  1. Jakub Hampl http://gampleman.eu #1

    avatar

    Tenhle článek by v angličtině nebyl zdaleka tak vtipnej ;)

    před 7 lety | reagoval [4] v6ak
  2. vedouci http://tomsik.cz #2

    avatar

    já brečím :-D

    před 7 lety
  3. vedouci http://tomsik.cz #3

    avatar

    navíc perfektně načasované – zrovna nedávno se někdo chlubil, že mod_rewrite dokonale ovládá :-)

    před 7 lety
  4. v6ak http://v6ak.profitux.cz/ #4

    #1 Jakube Hample, Ale v esperantu by to šlo (fraŭlineto, ne) :D

    před 7 lety | reagoval [9] LLook
  5. kukulich #5

    By mne zajímalo, do které patřím skupiny, když příznak NE používám.

    před 7 lety
  6. www-crewmanek-tvorba http://www.stargen.cz #6

    avatar

    moje dívka k indiánům nesmí, takže jsem to zatím nemusel řešit :-)

    před 7 lety
  7. Vojtěch Vrbka http://vrbka.info #7

    Perfektní!
    Příště už řeknu NE :D

    před 7 lety
  8. AAA #8

    avatar

    Nejen z toho důvodu (složitost mod_rewrite) se jej snažím nepoužívat, tam kde to není nutné ( = klient si o to vyloženě neřekne).

    IMHO není zas tak velký rozdíl mezi:

    http://web.cz/clanek-o-nicem/

    a

    http://web.cz/?…

    před 7 lety
  9. LLook #9

    #4 v6aku, Kiel vi vidas, mod_rewrito ofendis fraŭlineton! Tian estas ĝia natura konduta. Ke ĝi tion ne farus, vi devas ĝin diri NE.

    Moc vtipný mi to ale nepřišlo ani v češtině…

    před 6 lety

Tento článek byl uzavřen. Už není možné k němu přidávat komentáře.