---
title: "mod_proxy un URL rakstzīmju kodējums"
canonical_url: "https://www.zone.lv/help/lv/kb/mod_proxy-un-url-rakstzimju-kodejums/"
post_type: "ht_kb"
published: "2025-11-06T06:43:37+00:00"
modified: "2025-11-06T06:43:37+00:00"
language: "lv"
author: "silver"
taxonomies:
  ht_kb_category:
    - name: "Tehnisks"
      url: "https://www.zone.lv/help/lv/kb-categories/tehnisks/"
    - name: "Apache"
      url: "https://www.zone.lv/help/lv/kb-categories/apache/"
  ht_kb_tag:
    - name: "mod_proxy"
      url: "https://www.zone.lv/help/lv/kb-tags/mod_proxy/"
    - name: "nocanon"
      url: "https://www.zone.lv/help/lv/kb-tags/nocanon/"
    - name: "starpniekserveris"
      url: "https://www.zone.lv/help/lv/kb-tags/starpniekserveris/"
---

# mod_proxy un URL rakstzīmju kodējums

Ja lietotnei, kas darbojas aiz starpniekservera, ir svarīgi, lai visas URL rakstzīmes līdz lietotnei nonāktu **nemainītas**, tad diemžēl ienākošo pieprasījumu pāradresācija, kas konfigurēta caur **My Zone** (mod\_proxy), šim nolūkam nav piemērota, jo pirms URL nodošanas lietotnei tā veic noteiktas izmaiņas.

Piemēram, dažas rakstzīmes tiek pārkodētas to heksadecimālajos ekvivalentos.
Tādas rakstzīmes kā **“#”**, **“&amp;”** un **“?”** tiek pārveidotas attiecīgi par **“%23”**, **“%26”** un **“%3F”**.

Tas savukārt padara diezgan sarežģītu tādu lietotņu kā **Thumbor** izmantošanu. Lai gan teorētiski, izmantojot mod\_proxy, varētu palīdzēt atslēgvārds `nocanon`, diemžēl **My Zone** šo opciju neatbalsta.

Problēmu var atrisināt, aizstājot **mod\_proxy** ar **Apache pārrakstīšanas noteikumu** — piemēram, pievienojot šādu Apache direktīvu bloku:

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

**127.0.157.196** un **8888** ir jāaizstāj ar pareizajām vērtībām (pareizo loopback IP adresi vari atrast vai nu **My Zone** vadības panelī sadaļā **Webhosting → System information,** vai arī, palaižot čaulā komandu `vs-loopback-ip -4`).

Karodziņš **NE** **Rewrite rule** nodrošina, ka URL vai lietotnei nodotajos parametros netiek veiktas nekādas izmaiņas.
[https://httpd.apache.org/docs/2.4/rewrite/flags.html#flag\_ne](https://httpd.apache.org/docs/2.4/rewrite/flags.html#flag_ne)

 Drošības brīdinājums! Karodziņa \[NE\] (No Escape) izmantošana var radīt drošības risku, ja pieprasījumi tiek pāradresēti uz nezināmu vai publisku servisu. Izmanto karodziņu \[NE\] tikai tad, ja veic proxy uz iekšēju, uzticamu servisu, un pārliecinies, ka aizmugursistēma validē URL un neinterpretē tos kā komandrindas argumentus vai failu ceļus.

## RewriteCond skaidrojums

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

Šis ir nosacījums, pie kura noteikums tiek piemērots.
Šeit tiek izmantots īpašs mainīgais `%{THE_REQUEST}`, kas satur pārlūka sākotnējo HTTP pieprasījuma rindu, piemēram:
`GET /images/foo.jpg?size=large HTTP/1.1`

### Regulārās izteiksmes (regexp) `^<span class="hljs-selector-attr">[A-Z]</span>+\ /(<span class="hljs-selector-attr">[^?\ ]</span>+)/?` skaidrojums:

- `^[A-Z]+` — atbilst HTTP metodei (piem., `GET`, `POST`, `HEAD` u. c.)
- `\ /` — atstarpe, kam seko slīpsvītra (kā sākas katrs URL)
- `([^?\ ]+)` — uztver visas rakstzīmes līdz pirmajai `?` (vaicājuma parametri) vai atstarpei.
    Citiem vārdiem sakot, tas uztver tikai URL **“tīrā ceļa”** daļu bez vaicājuma virknes.
- `/?` — atļauj vienu izvēles noslēdzošo slīpsvītru beigās.

Šī “uztvertā” daļa tiek saglabāta kā **grupa** **%1**, ko vēlāk var izmantot `RewriteRule` ietvaros.
