mod_rewrite kasutamine lihtsam

Jaanus Putting
RSS: Jaga:

mod_rewrite logoLugu siis järgmine, et nüüdsest saab meie serverites mod_rewrite’t lihtsamalt kasutada 🙂

Täpsemalt öeldes: nüüdsest saab .htaccess failidesse lisada Rewrite* reeglistikke ja need töötavad momentaalselt, ilma et neid peaks sisestama DataZone haldusliidese kaudu. Enne andis server sellise tegevuse peale Error 500 (Internal Server Error), milles olev eesti keelne tekst palus klienti minna DataZone haldusliidesesse ning sisestada .htaccessis olevad keelatud direktiivid sealtkaudu.

Selle piirangu põhjus seisnes selles, et Apache .htaccess failides on võimalik kasutada igasuguseid direktiive, mille (vääriti) kasutamine võib mõjuda halvasti serveri tervisele. Paraku seda, milliseid direktiive konkreetselt .htaccess failist kasutada tohib, Apache enda vahenditega reguleerida ei saa.

Kes arvab, et selleks sobib AllowOverride, siis tollega saab muuta korraga vaid terve suure portsu direktiivide lubamist/keelamist .htaccess failis. See ei sobi, kui tahta keelata vaid ühte konkreetset “ohtlikku” direktiivi või lausa sellele antavat parameetrit.

Sisestades direktiivid läbi DataZone teostab nende kontrolli DataZone haldusliides skripti tasandil. Selle negatiivne pool seisneb aga selles, et muudatused ei jõua serverisse momentaalselt vaid mõne minutilise hilinemisega.

Kuna sealt sisestatud direktiivid pannakse otse domeeni <virtualhost ip></virtualhost> märgendite vahele (virtualhost context), siis et .htaccess failiga analoogset käitumist saavutada, tuleb osad direktiivid sisestada veel eraldi <directory kataloog></directory> märgendite vahele (directory context), mis paljudele kasutajatele on esmakordne ja tundmatu ning tekitab palju probleeme.


Üha suurema nõudluse tõttu just mod_rewrite järgi täiendasime Apache2 lähtekoodi, mis nüüdsest võimaldab meil täpselt kontrollida, mis nimega/parameetritega direktiive .htaccess faili sisestada saab ning mis on keelatud. Keelatud direktiivi või selle parameetri kohta antakse kliendi error_log-i täpne teade koos reanumbriga, kus ta .htaccess failis esineb. Järgnevalt ka kokkuvõte kõigist direktiividest, mida .htaccess-is kasutada saab:

  1. Direktiivid, mis Apache dokumentatsiooni kohaselt nõuavad AuthConfig, Indexes või Limit õigust.
  2. Options – lubatud on kõik parameetrid peale All ja ExecCGI. Juhul kui parameetris sisaldub FollowSymLinks, siis muudetakse see vaikides ümber SymLinksIfOwnermatch-iks.
  3. SetHandler/AddHandler – lubatud on parameetrid default-handler ja none
  4. ForceType/AddType/DefaultType – kõik parameetrid on lubatud aga kui parameetriks on application/x-httpd-php, siis seda rida ignoreeritakse, kuna PHP interpretaatori liitmist faililaienditega tuleb teha DataZonest eraldi valiku alt Konfiguratsioon selle teostamiseks sõltub PHP rezhiimist!
  5. RewriteRule – lubatud on kõik parameetrid peale Proxy kasutamise kolmandas parameetris
  6. Kõik järgmised direktiivid sõltumata parameetritest:
    1. RewriteCond
    2. RewriteBase
    3. RewriteEngine
    4. AcceptPathInfo
    5. ErrorDocument
    6. Addlanguage
    7. AddCharset
    8. AddDefaultCharset
    9. AddEncoding
    10. DefaultLanguage
    11. RemoveCharset
    12. RemoveEncoding
    13. RemoveLanguage
    14. LanguagePriority
    15. RemoveType
    16. RemoveHandler
    17. Redirect
    18. RedirectMatch
    19. RedirectTemp
    20. RedirectPermanent

Populaarsed postitused

Uus gTLD-de taotlusvoor: domeenimaailm on muutunud

Uus gTLD-de taotlusvoor: domeenimaailm on muutunud

Ants Korsar
Rohkem kui kümme aastat on möödunud ajast, mil internet koges oma seni suurimat domeenilaiendite avardumist. 2012. aastal avas ICANN taotlusvooru uutele...
Claude Code, Codex CLI ja OpenCode: AI-agendid Zone platvormil

Claude Code, Codex CLI ja OpenCode: AI-agendid Zone platvormil

Ingmar Aasoja
Terminalipõhised AI-agendid on viimase aastaga muutunud päriselt praktilisteks tööriistadeks. Oleme Zones AI-koodimisagentide arengut huviga jälginud...
Partner soovitab: esimese kodulehe loomine võib olla lihtsam kui esialgu tundub

Partner soovitab: esimese kodulehe loomine võib olla lihtsam kui esialgu tundub

Alustava ettevõtja jaoks võib kodulehe loomine tunduda suure investeeringuna ja keerulise ettevõtmisena. Sageli tekib tunne, et korraliku veebilehe...
Tarbija küsib: Miks ma ei saa domeeni eest raha tagasi?

Tarbija küsib: Miks ma ei saa domeeni eest raha tagasi?

Ants Korsar
Miks ei saa tarbija domeeni registreerimist 14 päeva jooksul tühistada? Käesolevas blogiloos selgitame, miks domeen erineb tavalisest e-poe ostust.