mod_rewrite kasutamine lihtsam

margus
Jaga:

Antud blogipostitus on 185 kuud vana ning ei pruugi olla enam ajakohane.

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 ip> märgendite vahele (virtualhost context), siis et .htaccess failiga analoogset käitumist saavutada, tuleb osad direktiivid sisestada veel eraldi kataloog> 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

Vähem peavalu uute PHP versioonidega

PHP 8.2 nüüd ametlikult väljas

Ingmar Aasoja
PHP versioon 8.2 on nüüd ametlikult väljas. Käesolevaga keskendume sellega kaasnevatele olulisematele uuendustele.

Partner soovitab:
Veebilehe optimeerimine paneb tulud kasvama

Digielu
Tänapäevase veebilehe optimeerimine mõjutab otseselt seda, kui hästi nii otsingumootorid kui ka kasutajad sinu veebilehte tajuvad.

Teeme andmebaasiühendused turvalisemaks

Ingmar Aasoja
Teatavasti on SQL andmebaaside kasutajatel vaikeseadistustes lubatud ühenduda ainult lokaalselt, mis tagab selle, et andmed ei liigu üle võõraste võrkude....

Partner soovitab:
Kuidas tõsta e-poe müüki disaini abil?

blogi
Kas oled märganud, et veebilehed on justkui uued vaateaknad? Inimesed toimetavad üha enam veebis, mis tähendab, et ka suur osa oste tehakse seal. See...