mod_rewrite kasutamine lihtsam

margus
Jaga:

Antud blogipostitus on 201 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 <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

"Pilve pole olemas. On lihtsalt kellegi teise arvuti."

Ardi Jürgens
Mis ikkagi on pilveteenus, kuidas see keerukas süsteem töötab ning kuidas me tulime mõne nädala eest toime ühe jõudlust pärssinud ootamatusega....

Saabub OpenSSL 3 tugi - ka aegunud PHP versioonidele

Ingmar Aasoja
Zone veebimajutusplatvormi aluseks olevat ZoneOS operatsioonisüsteemi ootab ees suurem uuendus: juurutame OpenSSL 3. versiooni. See muutus mõjutab pea...

Uuendame NodeJS ja Python vaikeversioone

Ingmar Aasoja
Juunis 2024 hakkame Zone platvormi järk-järgult l uuendama NodeJS ja Python vaikeversioone, mistõttu palume käesoleva kirjatükiga tähelepanu just...

Veelkord aegunud PHP versioonidest

Kaarel Urva
Mäletatavasti teavitasime aprilli lõpus kliente sellest, et aegunud PHP versioonide kasutamine muutub tasuliseks. Mõistetavasti tuli see uudis paljudele...