Get In Touch
541 Melville Ave, Palo Alto, CA 94301,
anthoncode.com
Ph: +1.831.705.5448
Work Inquiries
info@anthoncode.com
Ph: +1.831.306.6725
Back

Aquí te enseño Cómo redirigir URL a HTTPS en Laravel

Hoy aprenderás a redirigir cualquier proyecto en Laravel a https, contar con un certificado de seguridad es muy importante para brindar seguridad a los usuarios que visitan la página web o plataforma, te mostrare las dos formas que más conozco para redirigir URLs a HTTPS en Laravel.

Redirigir a SSL de la forma más fácil

La primera opción consiste en agregar una archivo .htaccess en el directorio principal y agregar el siguiente código:

<IfModule mod_rewrite.c>
  RewriteEngine On        
  RewriteCond %{HTTPS} !=on    
  RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
  RewriteRule ^(.*)$ public/ [L]
</IfModule>

Redirigir a SSL configurando Laravel

Te recomiendo que antes realices una copia de seguridad de tu aplicación ya que modificaremos código, atentos con los siguientes pasos.

  • Primero debes crear un Middleware con el nombre de HttpsProtocol.php (tal y como se muestra) en la dirección app/Http/middleware/ y copiar el siguiente código:

Nota debes reemplazar App por el nombre de tu aplicación.

<?php
namespace App\Http\Middleware;

use Closure;
class HttpsProtocol {
    public function handle($request, Closure $next)
    {
            if (!$request->secure()) {

                return redirect()->secure($request->getRequestUri());
            }
            return $next($request); 
    }
}
?>
  • Segundo debes agregar este middleware a cada solicitud agregando la configuración de la regla en el archivo Kernel.php , de la siguiente manera, abrir el archivo Kernel.php ubicado en app/Http/middleware y agregar lo que se muestra en la línea 33, Nota cambiar App por el nombre de tu aplicación solo debes agregar lo que se encuentra en la línea 33:
<?php

namespace Acelle\Http;

use Illuminate\Foundation\Http\Kernel as HttpKernel;

class Kernel extends HttpKernel
{
    /**
     * The application's global HTTP middleware stack.
     *
     * These middleware are run during every request to your application.
     *
     * @var array
     */
    protected $middleware = [
        \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
    ];

    /**
     * The application's route middleware groups.
     *
     * @var array
     */
    protected $middlewareGroups = [
        'web' => [
            \Acelle\Http\Middleware\EncryptCookies::class,
            \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
            \Illuminate\Session\Middleware\StartSession::class,
            \Illuminate\View\Middleware\ShareErrorsFromSession::class,
            \Acelle\Http\Middleware\VerifyCsrfToken::class,
            \Illuminate\Routing\Middleware\SubstituteBindings::class,
            \Acelle\Http\Middleware\HttpsProtocol::class,
        ],
        'web_nocsrf' => [
            \Acelle\Http\Middleware\EncryptCookies::class,
            \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
            \Illuminate\Session\Middleware\StartSession::class,
            \Illuminate\View\Middleware\ShareErrorsFromSession::class,
            #\Acelle\Http\Middleware\VerifyCsrfToken::class,
            \Illuminate\Routing\Middleware\SubstituteBindings::class,
        ],
        'api' => [
            'throttle:60,1',
            'bindings',
        ],
    ];

    /**
     * The application's route middleware.
     *
     * These middleware may be assigned to groups or used individually.
     *
     * @var array
     */
    protected $routeMiddleware = [
        'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
        'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
        'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
        'can' => \Illuminate\Auth\Middleware\Authorize::class,
        'guest' => \Acelle\Http\Middleware\RedirectIfAuthenticated::class,
        'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
        'frontend' => \Acelle\Http\Middleware\Frontend::class,
        'backend' => \Acelle\Http\Middleware\Backend::class,
        'installed' => \Acelle\Http\Middleware\Installed::class,
        'not_installed' => \Acelle\Http\Middleware\NotInstalled::class,
        'not_logged_in' => \Acelle\Http\Middleware\NotLoggedIn::class,
    ];
}

Así de simple podrás redirigir tu aplicación a https, si te funcionó no olvides suscribirte o activar la notificación.

Marco Antonio
Marco Antonio
Marco Antonio es un Analista de Sistemas y apasionado por la programación y el diseño web, fundó AnthonCode para fusionar su experiencia técnica con la creatividad. Como redactor y desarrollador, se enfoca en crear soluciones digitales innovadoras y efectivas.

2 comments

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

× ¿Cómo puedo ayudarte?