Php Laravel 4.2:强制URL呈现为HTTP或HTTPS
我们有一条简单的路线,定义如下: 路线 看法Php Laravel 4.2:强制URL呈现为HTTP或HTTPS,php,laravel,https,url-routing,laravel-4.2,Php,Laravel,Https,Url Routing,Laravel 4.2,我们有一条简单的路线,定义如下: 路线 看法 我们需要强制我们的链接/路由在视图中呈现为HTTP,或者在某些情况下呈现为HTTPS路由,例如http://host.domain/home或https://host.domain/home 我们不能使用URL::forceSchema(“http”)或URL::forceSchema(“https”),因为我们需要在http页面上强制使用https,在https页面上强制使用http。我们有一个多域应用程序。有些域通过HTTP运行,有些域通过H
我们需要强制我们的链接/路由在视图中呈现为HTTP,或者在某些情况下呈现为HTTPS路由,例如http://host.domain/home
或https://host.domain/home
我们不能使用URL::forceSchema(“http”)
或URL::forceSchema(“https”)
,因为我们需要在http页面上强制使用https,在https页面上强制使用http。我们有一个多域应用程序。有些域通过HTTP运行,有些域通过HTTPS运行。指向不同域/应用程序部分的链接可以放在任何地方。无法通过HTTP访问通过HTTPS运行的域。无法通过HTTPS访问在HTTP上运行的域
如何强制路由呈现为特定的超文本协议 标题下有一个部分,强制通过HTTPS提供路由服务。它没有提到为路由生成的URL,但我可以在illighted\Routing\UrlGenerator
code中看到,在getRouteScheme
方法中,此设置是受尊重的。因此,将一个新值http
/https
添加到操作数组中应该可以做到:
强制将路由呈现为HTTP: 强制将路由呈现为HTTPS:
现在
route('home::index')
应该根据您定义的架构生成URL。@Heyne在将问题标记为重复之前,请仔细阅读问题,并检查您标记为重复的问题。你的标记答案无论如何都不能解决这个问题。你如何决定应该使用哪个模式?这似乎不是与视图相关的逻辑。我猜如果通过http或https调用,您希望路由回调产生两种不同的响应,对吗?@Nima我们有一个多域应用程序。有些域通过HTTP运行,有些域通过HTTPS运行。指向不同域/应用程序部分的链接可以放在任何地方。无法通过HTTP访问通过HTTPS运行的域。在HTTP上运行的域不能通过HTTPS访问。我认为您可以强制路由仅通过HTTP/HTTPS提供服务,这将成为路由的属性,并在生成路由url时使用。这能解决你的问题吗?@Nima是的,这能解决我们的问题。
// Home
Route::get('/home', [
'as' => 'home::index',
'uses' => 'IndexController@home'
]);
<a href="{{ route('home::index') }}">Home</a>
Route::get('/home', [
'as' => 'home::index',
'uses' => 'IndexController@home',
'http'
]);
Route::get('/home', [
'as' => 'home::index',
'uses' => 'IndexController@home',
'https'
]);