Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel 4.2:强制URL呈现为HTTP或HTTPS_Php_Laravel_Https_Url Routing_Laravel 4.2 - Fatal编程技术网

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'
]);