25

目标:想要使用 ngrok 共享网站预览,它创建一个隧道,可以从该隧道中看到我的本地主机,其 url 类似于mywebsite.ngrok.io

问题:我使用 WAMP,我的 localhost 文件夹看起来像这样:

localhostdirectory
   |-- website1
   |-- website2
   |-- etc

要访问我localhost/website1/在浏览器中键入的网站,我只想通过隧道传输该 URL,可能的解决方案是:

  1. 设置一个虚拟主机,我会经历手动设置虚拟主机的麻烦,然后我会得到类似 website1.dev 的东西,然后我会将它作为 HTTP 请求中的主机头传递给 ngrok,如下所示

    ngrok http -host-header=website1.dev 80
    

    我不明白主机头是什么,为什么我不能传递一个相对 url localhost/website1/,还有什么是重写选项?

  2. 将我的本地主机的文件夹目录更改为网站的文件夹,我不想这样做。

有没有更好的方法以更简单的方式实现我的目标,也许是通过 WAMP 别名?

4

3 回答 3

41

如果您使用 Apache Vhost,您只需要执行命令

ngrok http -host-header=rewrite YOUR-LOCAL-DOMAIN:PORT

不要忘记编辑主机文件以解析@IP <-> YOUR-LOCAL-DOMAIN

于 2015-08-10T11:00:13.480 回答
14

我尝试了以下方式。

当我运行$ ./ngrok http 80 ngrok 时,请听localhost:80哪个显示仪表板,因为 apache 服务器正在运行port 80。然后我尝试在另一个端口中运行子文件夹,这解决了问题。假设您有项目xyz并且希望 ngrok 应该指出它。然后执行以下操作

$ cd /opt/lampp/htdocs/xyz
$ php -S localhost:8080

8080是任何未使用的端口。localhost:8080直接指向xyz然后打开其他终端

$ ./ngrok http 8080

通过这样做,ngrok 将在您正在运行时监听8080端口。xyz

希望这可以帮助!!

于 2018-06-30T11:57:00.223 回答
3

将 ngrok 地址设置为指向端口 80 上的 localhost 后,您可以通过其名称访问您的网站。前任:

ngrok http -subdomain=dev 80

访问网站1:

dev.ngrok.io/website1
于 2015-06-27T23:49:14.113 回答