GunnarDMedlem sedan juni 20014 290 inlägg Jag har en webserver som är åtkomlig från "Internet" och jag vill att den i sin tur skall hämta information från en webserver som står inne i ett "Intranet" och inte är åtkomlig från "Internet" och jag försöker lösa detta med mod_rewrite ihop med mod_proxy enligt följande kod:
RewriteEngine on
RewriteRule ^(media/?.*$) [url]http://192.168.0.100/[/url]$1 [P]
RewriteRule ^(media2/?.*$) [url]http://192.168.0.100/[/url]$1 [P]
Vilket verkar fungera så länge det inte ingår mellanslag i URL'en.
När jag ex. vill hämta http://webserver/media/filen%1.wav så verkar servern köra kommandot "http://192.168.0.100/media/filen 1.wad" vilket inte är så lyckat, iallafal får jag felmeddelande att filen "/media/filen" inte finns vilket är helt korrekt den heter "/media/filen 1.wav"
Kan på något sätt "escape" mellanslag?
RobbanMedlem sedan dec. 19992 555 inlägg Det korrekta sättet att avkoda ett mellanslag i en URL är med %20. Fungerar det inte om du bara skriver länken med mellanslag (de flesta webbläsare jag känner till sköter avkodningen till %20 automatiskt)?
GunnarDMedlem sedan juni 20014 290 inlägg
Robban skrev:
Det korrekta sättet att avkoda ett mellanslag i en URL är med %20. Fungerar det inte om du bara skriver länken med mellanslag (de flesta webbläsare jag känner till sköter avkodningen till %20 automatiskt)?
Nej, jag skickar http://webserver/media/filen 1.wav men mod_rewrite kodar först om det till " http://webserver/media/filen .wav" innan den lägger på sina regler, som den sedan skickar till mod_proxy.
Har "googlat" en hel del och hittat några artiklar som beskriver felet och tydligen är det ett gammalt fel som inte blivit åtgärdat, det finns förslag på hur man kan modifiera källkoden till mod_rewrite men det är för äldre versioner av apache och fungerar inte med senaste (2.0.50).
RobbanMedlem sedan dec. 19992 555 inlägg Kanske är enklare att se till att det inte finns några mellanslag i filnamnen då. :)