diff --git a/.env b/.env new file mode 100644 index 0000000..e69de29 diff --git a/app.py b/app.py index af5b036..316ded7 100644 --- a/app.py +++ b/app.py @@ -1,10 +1,17 @@ +import os from flask import Flask, render_template from flask_sock import Sock +from . import prefix -app = Flask(__name__) +app = Flask(__name__, ) sock = Sock(app) +app.wsgi_app = prefix.PrefixMiddleware( + app.wsgi_app, prefix=os.environ.get("URL_PREFIX", "") +) + + @app.route('/') def index(): return render_template('index.html') diff --git a/prefix.py b/prefix.py new file mode 100644 index 0000000..3d6a9cc --- /dev/null +++ b/prefix.py @@ -0,0 +1,14 @@ +class PrefixMiddleware(object): + def __init__(self, app, prefix=""): + self.app = app + self.prefix = prefix + + def __call__(self, environ, start_response): + + if environ["PATH_INFO"].startswith(self.prefix): + environ["PATH_INFO"] = environ["PATH_INFO"][len(self.prefix) :] + environ["SCRIPT_NAME"] = self.prefix + return self.app(environ, start_response) + else: + start_response("404", [("Content-Type", "text/plain")]) + return ["This url does not belong to the app.".encode()] \ No newline at end of file