【发布时间】:2015-06-16 08:17:03
【问题描述】:
我想将我网站上的结帐页面提供为“HTTPS”,但我网站上的所有其他页面都需要保持“HTTP”。我的 SSL 证书已正确安装,并且 SSL 路由在我的服务器上运行良好。
我在 filters.php 中添加了 2 个函数:一个函数强制使用 ssl (force.ssl),一个函数 (no.ssl) 将页面作为 http。
Route::filter('force.ssl', function()
{
if( ! Request::secure() && App::environment() !== 'local')
{
return Redirect::secure(Request::getRequestUri());
}
});
Route::filter('no.ssl', function()
{
if( Request::secure())
{
return Redirect::to(Request::path(), 302, array(), false);
}
});
我在 routes.php 中添加了以下路由。
Route::when('checkout/getpaymentpage/*', 'force.ssl');
Route::when('/*', 'no.ssl');
结帐页面被重定向到 HTTPS 页面,但是,如果用户随后决定通过单击导航栏中的链接导航到我网站上的另一个页面,则下一页也将作为 HTTPS 页面提供而不是作为 HTTP 页面。即使我明确添加了一条将所有其他页面显示为非 HTTP (no.ssl) 的路由。
我不确定我在这里做错了什么?如何确保只有我的结帐页面以 HTTPS 形式提供?
【问题讨论】: