【问题标题】:Laravel - Root Url suffix and route prefix inconsistencyLaravel - 根网址后缀和路由前缀不一致
【发布时间】:2018-11-27 18:49:48
【问题描述】:

我们有一个带有 laravel 4 的测试站点,它位于服务器上的 子文件夹。所以它在thedomain/sitename。这给路由带来了巨大挑战。路由出错了,比如:thedomain/about 而不是 thedomain/oursite/about

我使用 Illuminate\Routing\UrlGenerator 添加了一个 Url 根后缀'oursite'(在this suggestion 之后)。

模板中的所有 url 都变得正确,但它们与 routes.php 中的任何内容都不匹配,routes.php 仍然在没有后缀的情况下对其进行处理。

我尝试添加 route prefix 。现在输入到地址栏中的 url 起作用了。但是模板中的所有 url 都出错了,例如 thedomain/oursite/oursite/about

所以这似乎不一致 - 为什么当它们在模板中回显时将根 URL 后缀添加到所有路由(如 <a href="{{ route('about'); }} )但它们被解释为 没有 routes.php 中的后缀!?

我怎样才能解决这个问题?我以为我快要解决这个问题了。或者我可以使用路由过滤器在每个链接上重定向吗?

【问题讨论】:

  • 您是否尝试过不重写 index.php 的路由,所以您的路由将是 thedomain/oursite/index.php/about
  • 不,我没试过。在 Laravel 中是如何启用的?
  • 如果在 IIS 上,它是 .htaccess 或 web.config 的一部分,它与 laravel 无关,与您的 Web 服务器配置有关。本质上,您希望 index.php 出现在您的路线之前。

标签: laravel routing


【解决方案1】:

替代解决方案:可能使用sitename.thedomain.com 之类的子域而不是子文件夹。如果您的服务器提供商不支持子域,请更改提供商:P

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-07
    • 2016-03-26
    • 1970-01-01
    • 2019-08-14
    • 1970-01-01
    相关资源
    最近更新 更多