---
title: "mod_proxy ja URL-märkide kodeerimine"
canonical_url: "https://www.zone.ee/help/kb/mod_proxy-ja-url-markide-kodeerimine/"
post_type: "ht_kb"
published: "2025-10-30T11:19:21+00:00"
modified: "2025-11-06T06:41:58+00:00"
language: "et"
author: "silver"
taxonomies:
  ht_kb_category:
    - name: "Apache"
      url: "https://www.zone.ee/help/kb-categories/apache/"
    - name: "Tehniline"
      url: "https://www.zone.ee/help/kb-categories/tehniline/"
  ht_kb_tag:
    - name: "mod_proxy"
      url: "https://www.zone.ee/help/kb-tags/mod_proxy/"
    - name: "proxy"
      url: "https://www.zone.ee/help/kb-tags/proxy/"
    - name: "nocanon"
      url: "https://www.zone.ee/help/kb-tags/nocanon/"
---

# mod_proxy ja URL-märkide kodeerimine

Kui proxy taga töötava rakenduse jaoks on oluline, et kõik URL-i märgid jõuaksid muutmata kujul rakenduseni, siis kahjuks ei sobi selleks **Minu Zone**’i kaudu seadistatav sisenevate päringute ümbersuunamine (mod\_proxy), sest see teeb enne rakenduseni edastamist URL-is mõningaid muudatusi. Näiteks kodeeritakse osa märke ümber nende kuueteistkümnendsüsteemseteks ekvivalentkoodideks. Sellise muutuse läbivad näiteks märgid **“#”**, **“&amp;”** ja **“?”** (muutudes vastavalt **“%23”**, **“%26”** ja **“%3F”**).

See muudab omakorda üsna keeruliseks selliste rakenduste nagu näiteks **Thumbor** kasutamise. Kuigi mod\_proxy puhul võiks teoreetiliselt aidata võtmesõna `nocanon`, ei toeta **Minu Zone** kahjuks seda võimalust.

Olukorra lahendab, kui asendada mod_proxy Apache rewrite-reegliga. Näiteks lisada Apache direktiiviplokk:

```
RewriteCond "%{THE_REQUEST}" "^[A-Z]+\ /([^?\ ]+)/?"
RewriteRule "^/(.*)" "http://127.0.157.196:8888/%1" [P,NE]
```

127.0.157.196 ja 8888 tuleb asendada õigete väärtustega (korrektse IP-silmusaadressi leiate kas **Minu Zone** keskkonnast valides `Serveriteenus` -&gt; `Süsteemsed andmed` või shellis käivitades käsu `vs-loopback-ip -4`).

Rewrite-reegli NE lipp tagab, et ei toimuks mingeid muudatusi rakendusele edastava URL-i ja parameetrite osas. [https://httpd.apache.org/docs/2.4/rewrite/flags.html#flag\_ne](https://httpd.apache.org/docs/2.4/rewrite/flags.html#flag_ne)

 Turvahoiatus! `[NE]` (No Escape) lipu kasutamine võib kujutada turvariski, kui päringud suunatakse tundmatule või avalikule teenusele. Kasuta `[NE]` lippu ainult siis, kui proksid sisemisse, usaldusväärsesse teenusesse, ning veendu, et backend valideerib URL-id ega käsitle neid käsurea- või failiteedena.

## RewriteCond lahti seletatult

`RewriteCond "%{THE_REQUEST}" "^[A-Z]+\ /([^?\ ]+)/?"`

See on tingimus, mille alusel reegel rakendub.
Siin kasutatakse spetsiaalset muutujat `%{THE_REQUEST}`, mis sisaldab brauseri algset HTTP-päringu rida, näiteks:
`GET /images/foo.jpg?size=large HTTP/1.1`

### `^<span class="hljs-selector-attr">[A-Z]</span>+\ /(<span class="hljs-selector-attr">[^?\ ]</span>+)/?` regexp-i seletus:

- `^[A-Z]+` — vaste HTTP meetodile (nt `GET`, `POST`, `HEAD` jne)
- `\ /` — tühik + kaldkriips (nii algab alati URL)
- `([^?\ ]+)` — püüab kinni kõik märgid kuni esimese **?** (päringu parameetrid) või tühikuni. See tähendab: püütakse kinni ainult URL-i “puhas tee” ilma query stringita.
- `/?` — lubab lõpus ühe valikulise kaldkriipsu.

See „püütud” osa salvestatakse **grupina %1**, mida saab hiljem `RewriteRule` sees kasutada.
