为laravel应用程序定义基本URL

时间:2014-02-23 09:22:14

标签: php laravel laravel-4

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

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

现在我通过用绝对的硬编码网址替换这些调用来解决这个问题,但这会扰乱我的工作流程。

那么,有没有办法迫使Laravel使用特定的基本网址?

1 个答案:

答案 0 :(得分:1)

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

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

如果它是永久重定向,那么您最好:

  • 按原样考虑:重定向
  • 考虑更改您的体系结构以平等地支持两个域(没有重定向)

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

  • laravel正在创建链接,以避免在每个页面加载时进行额外的,无用的重定向,事实上,这是一个表现明智的好事。
  • 当您要投入生产并直接在client-domain.com安装应用时,laravel会自动将所有链接指向该位置,因此您可以安全地删除我的应用domain.com

在旁注中,并不是真的建议不要使用多个网址访问相同的内容。因此,您必须将一个域重定向到另一个域(似乎是当前行为),然后才使用其中一个域。

编辑: 并回答你的最后一个问题,没有办法在laravel中设置基本网址(至少目前为止)。 github上似乎存在一个问题(这里:https://github.com/laravel/framework/issues/92)。也许你可以在那个方向上进行调查,但我不认为它会在某一天实施,因为在任何常规的Web应用程序中,这似乎都是hacky并且非常罕见。