【问题标题】:Laravel 4: Getting URL::route to returns a HTTPS URL without enforcing HTTPS in the routesLaravel 4:获取 URL::route 以返回 HTTPS URL,而不在路由中强制执行 HTTPS
【发布时间】:2014-01-03 19:51:58
【问题描述】:

我希望我网站上的所有链接都使用 HTTPS;但是我不能(出于非技术原因)强迫用户使用 HTTPS。因此,我希望 Laravel 生成的所有 URL 都以“https”为前缀,但我不希望 Laravel 在用户通过“http”访问 URL 时抛出异常。

我有以下路线设置:

Route::get('dashboard', [ 'uses'=>'DashboardController@view' ]);

谁能告诉我如何让 URL::route('dashboard') 返回 URL 的 HTTPS 版本,而无需将我的路由重写为:

Route::get('dashboard', [ 'https', 'uses'=>'DashboardController@view' ]);

或者如何按照第二个示例编写我的路由,但如果通过“http”访问则不会引发异常?

【问题讨论】:

  • 我会使用 mod_rewrite stackoverflow.com/questions/4398951/…
  • 抱歉 – 确认我没有试图阻止用户通过 HTTP 访问该站点 – 我正在尝试更改 URL::route 的响应,使其返回安全链接,而不添加“https” ' 作为路由的参数。
  • 嘿,尼尔,我同意。我需要知道如何强制 URL::route 创建安全链接,因为我们的负载均衡器正在执行 HTTPS,然后将请求作为标准 HTTP 传递给我们的服务器。这里的cmets不回答这个问题。希望有人能帮忙!!
  • 嗨@Artistan。我深入研究了源代码来看看这个。由于它目前是建造的(或者至少是 3 个月前建造的),所以没有办法做到这一点。现在我会再看一下我们有 4.1 的版本,看看是否有任何变化——或者我是否可以想出一个补丁来提交以允许它。
  • 显然有一个服务器配置可以让服务器像 https 一样工作,即使它不是。所以我有一个“修复”,谢谢!

标签: php https laravel-4


【解决方案1】:

要使用 URL::route 在 laravel 刀片视图中创建 https 链接,只需使用:URL::secure()

http://cheats.jesse-obrien.ca/#urls

URL::secure('foo/bar', $parameters);
URL::secureAsset('css/foo.css');
URL::to('foo/bar', $parameters, $secure);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-27
    • 2023-03-14
    • 1970-01-01
    • 2023-04-02
    • 2019-12-06
    • 2023-04-01
    • 2014-08-17
    • 2020-11-07
    相关资源
    最近更新 更多