ユーザーが入力したアドレスに基づいて、動的に URL にリダイレクトする Web アプリケーションを作成したいと考えています。ユーザーが次のようなアドレスで私のサイトにアクセスした場合:
http://mydomain1.com/a1b2c3d4
このユーザーを URL にリダイレクトしたい:
http://mydomain2.com/register.php?id=a1b2c3d4&from=mydomain1.com
ええ、私は良い戦いが大好きです!
from pyramid.config import Configurator
from pyramid.httpexceptions import HTTPFound
from paste.httpserver import serve
config = Configurator()
config.add_route('redirect', '/{arg}')
def redirect_view(request):
dst = 'http://mydomain2.com/register.php?id={id}&from={host}'
args = {
'id': request.matchdict['arg'],
'host': request.host,
}
return HTTPFound(dst.format(**args))
config.add_view(redirect_view, route_name='redirect')
serve(config.make_wsgi_app(), host='0.0.0.0', port=80)
これが私の試みです。私はほとんどフラスコの初心者なので、改善の余地があるはずです
from flask import Flask, redirect, request
app = Flask(__name__)
host = 'domain2.org'
@app.route('/<path>')
def redirection(path):
return redirect('http://'+host+'/register.php?id='+path+'&from='+request.host)
if __name__ == '__main__':
app.run()
ホストをfromパラメータに追加するように編集
私の解決策は、パスタイプを使用してWerkzeugルールを使用することでした:
host = 'domain2.org'
@app.route('/<path:path>')
def redirection(path):
return redirect('http://%s/%s' % (host, path), code=301)
これは、サイトを移動し、代わりに他のページにリダイレクトする別のサイトが必要な場合に役立ちます.