当前位置: 首页 > 知识库问答 >
问题:

如何强制Laravel项目使用HTTPS的所有路线?

邵昆琦
2023-03-14

我正在做一个需要安全连接的项目。

我可以设置的路线,uri,资产使用'https'通过:

Route::get('order/details/{id}', ['uses' => 'OrderController@details', 'as' => 'order.details', 'https']);

url($language.'/index', [], true)

asset('css/bootstrap.min.css', true)

但一直设置参数似乎很累。

有没有办法强制所有路由生成HTTPS链接?

共有3个答案

唐永春
2023-03-14

你可以设置'url'=

姚晋
2023-03-14

这里有几种方法。选择最方便的。

>

  • 将web服务器配置为将所有非安全请求重定向到https。nginx配置示例:

    server {
        listen 80 default_server;
        listen [::]:80 default_server;
        server_name example.com www.example.com;
        return 301 https://example.com$request_uri;
    }
    

    使用https设置环境变量APP\u URL

    APP_URL=https://example.com
    

    使用助手secure_url()(Laravel5.6)

    将以下字符串添加到AppServiceProvider::boot()方法(对于5.4版):

    \Illuminate\Support\Facades\URL::forceScheme('https');
    

    更新:

    路由组隐式设置方案(Laravel5.6):

    Route::group(['scheme' => 'https'], function () {
        // Route::get(...)->name(...);
    });
    

  • 狄宗清
    2023-03-14

    将其放在boot()方法的AppServiceProvider中

    if($this->app->environment('production')) {
        \URL::forceScheme('https');
    }
    
     类似资料:
    • 问题内容: 在我的应用中有一段时间,无论用户输入了什么内容,我都必须强制显示建议列表中的所有项目。我怎样才能做到这一点? 我尝试使用过滤进行某些操作,但是对我而言,作为初学者进行过滤实在太复杂了,我尝试在没有任何运气的情况下搜索初学者教程进行过滤。也许,有一种更简单的方法可以强制显示所有建议项? 编辑:基本上我的想法是,当用户键入列表中未包含的内容时,它将显示他可以拥有的所有可用选项。 我已经找到

    • 问题内容: 我正在尝试为Express.js创建一个中间件,以将所有非安全(端口80)通信重定向到安全SSL端口(443)。不幸的是,Express.js请求中没有任何信息可让您确定该请求是否来自http或https。 一种解决方案是重定向 每个 请求,但这不是我的选择。 笔记: 没有可能用Apache或其他东西来处理它。它 必须 在节点中完成。 应用程序中只能启动 一台 服务器。 您将如何解决?

    • 问题内容: 我正在将Maven与“ Eclipse Kepler JavaEE”结合使用。我在’maven-compiler-plugin’中有这样的内容: 每次我更改“ pom.xml”中的内容时,eclipse都会强制我执行“ Maven->更新项目”,然后将项目设置更改为使用JRE而不是JDK,并且某些maven构建停止工作。 我发现解决此问题的唯一方法是设置如何设置eclipse / m2

    • 我有几个站点作为子域,主域名为site1。通用域名格式。我的主域有一个用于。我的子域可以被引用为,到。我的主域正确使用证书,并在所有页面上强制使用https,我的子域仅在管理页面上使用https,我使用的是wordpress CMS,或者如果我引用我的站点作为,。我想让我的子域以。目前我的域名作为或 PS:我无法访问vhost文件。这是我所有域名的. htaccess代码:

    • 我似乎不能强迫https在弹性Beanstalk的自由使用层上。 关于如何在amazon elastic beanstalk上强制https而又不通过健康检查,我尝试了以下建议 使用此Apache重写规则 当我这样做时,http请求不会像我想的那样被重定向到https。相反,http页会正常加载。我也尝试使用X-Forwarded-Port报头,得到了同样的结果。 我也试过下面的重写规则 而此规则

    • 问题内容: 我正在使用MySQL Connector / .NET,它的所有提供程序都带有FormsAuthentication。 我需要所有用户退出。该方法无法正常工作。 如何注销所有站点用户? 问题答案: 正如乔建议的那样,您可以编写一个HttpModule来使给定DateTime之前存在的任何cookie无效。如果将其放在配置文件中,则可以在必要时添加/删除它。例如, Web.config: