【发布时间】:2016-12-07 22:53:24
【问题描述】:
问题:
我有两个网络应用程序,“App1”通过 ajax 从“App2”获取数据。在生产中,App1 应该从 App2 的生产 url 获取数据。但是,当我在 localhost:3000 上开发 App1 时,我希望 App1 从 localhost:3001 的本地版本的 App2 获取数据(而不是从生产版本)。
先前的研究:
我已经搜索了很多关于如何做到这一点,但不能真正对我找到的东西做出正面或反面。
-
我已经阅读了一些建议我应该更改 /etc/hosts 的内容,但由于生产站点使用 HTTPS 而我的 localhost 只是 HTTP,因此我无法使其正常工作。
我也遇到过 .htaccess,但添加文件似乎没有任何效果,我在 Apache 兔子洞中迷失了方向,只是在寻找如何打开 .htaccess 的东西. (我也看过一些关于 mod-rewrite 的东西,但也不知道如何让它发挥作用。)
我还发现了像 Switcheroo Redirector 这样的 Chrome 扩展程序,但这并没有很好地工作,因为简单的重定向会将一些基本的 HTTP 响应更改为 301,而我的应用程序无法处理这些响应。
问题
对于我正在尝试做的事情,什么是正确的工具? (/etc/hosts、.htaccess 或其他)
要获得所需结果,该工具的最基本配置是什么?
【问题讨论】:
-
您必须以某种方式更改 app1 实际请求的 URL。没办法。通常,这样的 URL(至少是基本 URL)是应用程序的配置参数,而不是硬编码在路径中。所以你可以把它放在一个配置文件中,或者更优雅地把它作为环境变量从 http 服务器交给 php 脚本。然后,只有这样,您才能获得所需的所有重写方法。但没有它,请求甚至不会到达您的本地 http 服务器,这意味着所有尝试做任何事情都没有任何效果。
-
好的,很高兴知道。谢谢!
-
啊,一种选择确实是修改本地主机名配置以将该生产系统名称解析为本地地址。然后,您必须在本地 http 服务器中使用本地生产系统名称配置虚拟主机,并使用自签名证书打开 https。这应该可行,只有您的应用需要接受这样的 https 连接自签名证书,所以证书验证应该被关闭。
-
另外,@arkascha 如果您将您的回复复制为答案(不是评论),我可以接受并关闭此问题。
-
不确定这是否已经解决了您的问题。这就是我发表评论的原因;-)
标签: .htaccess mod-rewrite url-rewriting localhost url-redirection