0

webapp2のDomainRouteを使用して、リクエストを特定のユーザーにルーティングしようとしています。ルートの定義は次のようになります。

app = webapp2.WSGIApplication([
                                DomainRoute("<subdomain>." + os.environ["HTTP_HOST"], [
                                    webapp2.Route('/',ClientHandler)]),
                            ('/', MainHandler)],
                            debug=True)

ハンドラーはすべて存在し、現在、ClientHandlerは現在のサブドメインを吐き出す必要がありますが、現在nosub.localhost:8090に移動すると、サーバーにも到達しません。ホストファイルを編集する必要がありますか?もしそうなら、*。localhostのようなワイルドカートを追加して、どのサブドメインでも機能するようにすることは有効ですか?

4

1 に答える 1

1

はい、hostsファイルを編集する必要があります-whatever.localhost自動的にに解決されません127.0.0.1または、時間を節約してxip.ioを使用します。

ただし、コードには重大な問題がありますos.environ["HTTP_HOST"]。最初のリクエストでのみ実行されるコンテキストで使用しています。これは、アプリへの最初のリクエストからホスト名を抽出し、それをそれ以降のすべてのリクエストのベース名として使用することを意味します。これは、あなたが望むものではないことは間違いありません。たとえば、アプリインスタンスの最初のユーザーがから来ている場合はsubdomain.myapp.com、のルートを設定しますsubdomain.subdomain.myapp.com

于 2012-10-04T15:12:40.987 に答える