我想在我的网站上以“HTTPS”的形式提供结帐页面,但我网站上的所有其他网页都需要保留“HTTP”。我的SSL证书已正确安装,SSL路由在我的服务器上正常运行。
我在filters.php中添加了两个函数:一个函数强制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提供?
答案 0 :(得分:0)
为什么不将整个网站设为HTTPS?
您将获得Google的免费搜索引擎优化:http://googlewebmastercentral.blogspot.com.au/2014/08/https-as-ranking-signal.html
现实情况是,服务器开销没有真正的变化。
否则你做了很多工作去反对目前的趋势,使整个网站成为https ...