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ā “#”, “&” 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.
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
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) ^[A-Z]+\ /([^?\ ]+)/? skaidrojums:
-
^[A-Z]+— atbilst HTTP metodei (piem.,GET,POST,HEADu. 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.