Maison  >  Questions et réponses  >  le corps du texte

Comment rediriger toutes les routes Laravel vers un nouveau sous-domaine à l'aide du système de routage Laravel ?

<p>Redirigez toutes les routes Laravel vers la même route, mais modifiez l'URL de base. </p> <p>Je souhaite déplacer mon projet Laravel d'un domaine à un sous-domaine Quelle est la meilleure façon de rediriger toutes les requêtes du dernier domaine vers le même nouveau sous-domaine. </p> <p>Par exemple, si un utilisateur envoie une requête à cette URL</p> <pre class="brush:php;toolbar:false;">mydomain.com/page/1</pre> <p>Redirection vers cette URL</p> <pre class="brush:php;toolbar:false;">subdomain.mydomain.com/page/1</pre> <p>Je préfère le gérer dans le projet Laravel. Pas une configuration NGINX. </p>
P粉310931198P粉310931198383 Il y a quelques jours425

répondre à tous(1)je répondrai

  • P粉052686710

    P粉0526867102023-09-03 00:47:56

    Pour gérer cela au niveau de Laravel, vous pouvez utiliser un middleware. Le middleware fournit un mécanisme pratique pour inspecter et filtrer les requêtes HTTP entrant dans votre application.

    Voici des exemples de la façon dont vous pouvez procéder.

    Tout d'abord, créez un nouveau middleware en exécutant la commande suivante :

    php artisan make:middleware SubdomainRedirectMiddleware

    Ensuite, ouvrez le fichier app/Http/Middleware/SubdomainRedirectMiddleware.php nouvellement créé et ajoutez la logique de redirection à la méthode handle :

    public function handle(Request $request, Closure $next)
    {
        // Replace 'mydomain' with your actual domain
        if ($request->getHost() === 'mydomain.com') {
    
            // Replace 'subdomain' with your actual subdomain
            return redirect()->to(str_replace('mydomain.com', 'subdomain.mydomain.com', $request->fullUrl()));
        }
    
        return $next($request);
    }

    Ensuite, vous devez enregistrer ce middleware. Ouvrez app/Http/Kernel.php et ajoutez les lignes suivantes au tableau routeMiddleware :

    protected $routeMiddleware = [
        'subdomain.redirect' => \App\Http\Middleware\SubdomainRedirectMiddleware::class,
    ];
    
    Route::group(['middleware' => 'subdomain.redirect'], function () {
        // All your routes go here
    });
    
    Please replace 'mydomain' and 'subdomain' with your actual domain and subdomain in SubdomainRedirectMiddleware.php.

    ▽Ceci est une référence https://www.w3schools.in/laravel/middleware

    répondre
    0
  • Annulerrépondre