通过ngrok隧道一个localhost子目录?

Pon*_*cks 15 wamp http localhost virtualhost ngrok

目标:想要使用ngrok共享网站预览,这会创建一个隧道,从中可以看到我的本地主机,其中包含类似的内容 mywebsite.ngrok.io

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

localhostdirectory
   |-- website1
   |-- website2
   |-- etc
Run Code Online (Sandbox Code Playgroud)

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

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

    ngrok http -host-header=website1.dev 80
    
    Run Code Online (Sandbox Code Playgroud)

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

  2. 将我的localhost的文件夹目录更改为网站的文件夹,我宁愿不这样做.

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

小智 27

如果你使用Apache Vhost,你只需执行exec命令

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

别忘了编辑主机文件以解析@IP < - > YOUR-LOCAL-DOMAIN

  • 为我工作:`ngrok http --host-header=rewrite YOUR-LOCAL-DOMAIN:PORT` (2认同)

Roh*_*ude 6

我尝试了以下方式.

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

$ cd /opt/lampp/htdocs/xyz
$ php -S localhost:8080
Run Code Online (Sandbox Code Playgroud)

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

$ ./ngrok http 8080

通过这样做,ngrok会听8080xyz正在运行的端口.

希望这可以帮助!!

  • 被低估的答案 (4认同)
  • 救了我写一个这样的问题。我试图让 ngrok 指向我的本地主机上的一个子目录,并使用 -host-header 选项尝试了各种方法,最终让 `php -S localhost:8080` (在子目录中)挽救了这一天,这样我就可以了执行“ngrok http 8080” (2认同)

The*_*mer 5

我相信现在 ngrok v3 的正确语法是ngrok http --host-header=rewrite YOUR-LOCAL-DOMAIN:PORT

注意双--

https://ngrok.com/docs/guides/upgrade-v2-v3