Laravel Ngrok和绝对URL

时间:2016-09-02 10:37:47

标签: laravel ngrok

我使用此命令启动ngrok for laravel站点,即testsite.local:

ngrok http -host-header=rewrite testsite.local:80

我在testsite.local中定义/etc/hosts以映射到127.0.0.1

这很有效,Ngrok启动很好,现在在一些随机* .ngrok.io地址上提供本地站点,我可以访问。但是laravel应用程序中的所有URL(例如内部链接或用于加载css或js文件的URL)都是我本地定义的域的绝对URL,如http://testsite.local/newshttp://testsite.local/css/styles.css。换句话说,我可以很好地加载网站,但是其他任何人只看到一堆没有样式的HTML并获得一个非功能性网站。

这对于使用ngrok并且在其项目中具有绝对URL的任何人来说都是一个普遍的问题,但谷歌并没有产生任何有用的东西。

我想到了两种可能的方法:

  1. 将应用程序中的所有链接重写为相对而不是 绝对的(哦,上帝请不)
  2. 任何想要通过* .ngrok.io网址访问我网站的客户都必须映射' testsite.local'在他们自己的/ etc / hosts文件中的域到ngrok.io url。
  3. 这些方法可能有效,但这似乎已经拉长了......还有什么可以做的吗?

3 个答案:

答案 0 :(得分:1)

您需要使用Apache Module mod_substitute。 首先,启用模块:

a2enmod substitute
service apache2 restart

然后,将以下内容添加到.htaccess文件中:

AddOutputFilterByType SUBSTITUTE text/html
Substitute "s|<your-local-link>|<your-ngrok-link>|in"

更多信息:https://httpd.apache.org/docs/2.4/mod/mod_substitute.html

答案 1 :(得分:-1)

在xammp / apache / conf / httd.conf中

DocumentRoot&#34; C:/ xampp / htdocs / {your-project-path}&#34;

目录&#34; C:/ xampp / htdocs / {your-project-path}&#34;

答案 2 :(得分:-1)

在httpd.conf中将DocumentRoot和Directory设置为项目的路径。

gen