git.net

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [users@httpd] RewriteMap prg: How to pass value from Python3 script back to Apache24?


The solution I just found is the following: Even though the python script has the necessary execute permissions, the RewriteMap definition required that the python interpreter is included in the Apache config file:

RewriteMap extrw "prg:/usr/bin/python3 /opt/extrw.py"

Now it worked using this script:

while True:
     arg = sys.stdin.readline() # makes sense, but will work without
     newValue = "/index.html" # placeholder for testing
     sys.stdout.write(newValue + "\n")
     sys.stdout.flush()



Am 10.11.18 um 20:33 schrieb Benedikt Kroll:
Hi,

using Rewrite Map with MapType prg in Apache 2.4, I'm having trouble passing the value back to Apache.

The log says "map lookup OK", but the value is empty.

On Stackoverflow and others, I found and tried out some examples, which in some cases where quite old, so probably written for older versions.

The following is what I extracted from the more current hints I could find.


*.conf
         RewriteEngine On
         RewriteMap extrw "prg:/opt/extrw.py"
         RewriteRule "^(.*)" "${extrw:%{REQUEST_URI}}"


/opt/extrw.py
     import sys
     while True:
         newValue = "/index.html"  # placeholder for testing
         sys.stdout.write(newValue + "/n")
         sys.stdout.flush()


log for curl 127.0.0.1/abc
     init rewrite engine with requested uri /abc
     applying pattern '^(.*)' to uri '/abc'
     map lookup OK: map=extrw key=/abc -> val=
     rewrite '/abc' -> ''
     local path result:


The expected result would be to have "map lookup OK: map=extrw key=/abc -> val=/index.html" in the third line.

Any help would be appreciated!

Thanks!
Benedikt

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@xxxxxxxxxxxxxxxx
For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@xxxxxxxxxxxxxxxx
For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx