Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk mengubah hala semua laluan Laravel ke subdomain baharu menggunakan sistem penghalaan Laravel?

<p>Ubah hala semua laluan Laravel ke laluan yang sama, tetapi tukar URL asas. </p> <p>Saya mahu mengalihkan projek Laravel saya dari domain ke subdomain Apakah cara terbaik untuk mengubah hala semua permintaan pada domain terakhir ke subdomain baharu yang sama. </p> <p>Sebagai contoh, jika pengguna menghantar permintaan ke URL ini</p> <pre class="brush:php;toolbar:false;">mydomain.com/page/1</pre> <p>Ubah hala ke URL ini</p> <pre class="brush:php;toolbar:false;">subdomain.mydomain.com/page/1</pre> <p>Saya lebih suka mengendalikannya di dalam projek Laravel. Bukan konfigurasi NGINX. </p>
P粉310931198P粉310931198435 hari yang lalu486

membalas semua(1)saya akan balas

  • P粉052686710

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

    Untuk mengendalikan perkara ini di peringkat Laravel, anda boleh menggunakan perisian tengah. Middleware menyediakan mekanisme yang mudah untuk memeriksa dan menapis permintaan HTTP yang memasuki aplikasi anda.

    Berikut ialah contoh cara anda boleh melakukannya.

    Mula-mula, cipta perisian tengah baharu dengan menjalankan arahan berikut:

    php artisan make:middleware SubdomainRedirectMiddleware

    Seterusnya, buka apl fail/Http/Middleware/SubdomainRedirectMiddleware.php yang baru dibuat dan tambah logik ubah hala pada kaedah pemegang:

    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);
    }

    Kemudian, anda perlu mendaftar middleware ini. Buka app/Http/Kernel.php dan tambahkan baris berikut pada tatasusunan 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.

    ▽Ini adalah rujukan https://www.w3schools.in/laravel/middleware

    balas
    0
  • Batalbalas