首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重定向localhost:5000 /some到localhost:5000

重定向localhost:5000 /some到localhost:5000
EN

Stack Overflow用户
提问于 2022-11-28 17:11:10
回答 1查看 27关注 0票数 0

我有一个在localhost:5000中运行的调试器烧瓶api应用程序。api运行时没有问题。但是当我试图通过另一个应用程序使用它,我不能改变它,它使用localhost:5000/some_path

我想从localhost:5000/some_path重定向到localhost:5000

我已经读到我可以在我的烧瓶api应用程序中使用前缀,但我更喜欢另一种方法。我不想把密码搞砸。

是否有重定向/中间件或其他方式重定向此通信量?

docker-compose.yml:

代码语言:javascript
复制
# Use root/example as user/password credentials
version: "3.1"

services:
  my-db:
    image: mariadb
    restart: always
    environment:
      MARIADB_ROOT_PASSWORD: example
    ports:
      - 3306:3306
    volumes:
      - ./0_schema.sql:/docker-entrypoint-initdb.d/0_schema.sql
      - ./1_data.sql:/docker-entrypoint-initdb.d/1_data.sql

  adminer:
    image: adminer
    restart: always
    environment:
      ADMINER_DEFAULT_SERVER: my-db
    ports:
      - 8080:8080

  my-api:
    build: ../my-awesome-api/
    ports:
      - 5000:5000
EN

回答 1

Stack Overflow用户

发布于 2022-11-29 06:40:34

如果您使用web服务器为您的应用程序提供服务,您可以使用它来管理它,例如使用nginx您可以这样做:

代码语言:javascript
复制
location = /some_path {
  return 301 /;
}

或者您可以使用中间件:

代码语言:javascript
复制
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:
            #handle not found

然后通过添加前缀“忽略”来注册中间件。

代码语言:javascript
复制
app = Flask(__name__)
app.wsgi_app = PrefixMiddleware(biosfera_fe.wsgi_app, prefix="/some_path")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74604160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档