繁体   English   中英

定义laravel应用程序的基本URL

[英]Define base url for laravel application

我客户端的应用程序暂时在我的登台服务器( my-domain.com )上运行,而在他的服务器( client-domain.com )上,我放置了一个.htaccess文件以将所有请求重定向到我的登台服务器。 到目前为止,除了使用Laravel的帮助程序构建URL之外,此方法都可以正常工作。

例如,当我调用{{ action( 'Controller@getIndex' }} ,Laravel返回my-domain.com/index (而不是所需的client-domain.com/index )。

现在,我通过将这些调用替换为绝对的,硬编码的URL来解决了此问题,但这困扰了我的工作流程。

因此,有没有办法强迫Laravel使用特定的基本网址?

Laravel为运行它的当前域生成URL。 目前,laravel在my-domain.com上运行,即使您使用client-domain.com进行调用。 当然这取决于您如何重定向。

因此,首先,为什么要将客户端域重定向到服务器。

如果这是永久重定向,那么最好执行以下操作:

  • 照原样考虑:重定向
  • 考虑更改您的体系结构以平等地支持两个域(因此无需重定向)

如果仅用于测试/调试(或其他),并且当您进入生产阶段时此重定向将消失,则不必担心:

  • laravel正在创建链接以避免在每次页面加载时进行额外的,无用的重定向,实际上这是明智的性能选择。
  • 当您投入生产并直接在client-domain.com中安装应用程序时,laravel会自动将所有链接指向该位置,因此您可以安全地在my-domain.com上删除应用程序

附带说明一下,实际上不建议通过多个URL访问相同的内容。 因此,您必须301将一个域重定向到另一个域(似乎是当前行为),然后仅使用其中一个。

编辑:并回答您最后一个问题,没有办法在laravel中设置基本URL(至少现在是这样)。 github上似乎有个问题(在这里: https : //github.com/laravel/framework/issues/92 )。 也许您可以朝这个方向进行调查,但是我认为不会一天实现,因为在任何常规的Web应用程序中这似乎都是很棘手的事情,而且很少见。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM