我需要启用从非根路径(即http://example.com/wiki/而不是http://example.com/)提供 Web 应用程序。该应用程序位于反向代理 (nginx) 后面。我意识到至少有两种方法:
让应用程序知道路径前缀并使用它来构造所有 URL(3xx 重定向中的位置标头、HTML 文档中的链接和 Ajax 调用中的地址)。
从反向代理中的请求中去除前缀(/wiki/index.html 变为 /index.html),将此类请求传递给应用程序,在所有 HTML 文档和 Ajax 调用中使用相对 URL(src="./static/foo .jpg", POST "./create-user"。配置反向代理以重写重定向中返回的 Location 标头。('proxy_redirect' nginx 指令)。
哪种方法更好,为什么?