suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Wie leite ich alle Laravel-Routen mithilfe des Laravel-Routing-Systems auf eine neue Subdomain um?

<p>Alle Laravel-Routen auf dieselbe Route umleiten, aber die Basis-URL ändern. </p> <p>Ich möchte mein Laravel-Projekt von der Domain in die Subdomain verschieben Was ist der beste Weg, um alle Anfragen auf der letzten Domain auf dieselbe neue Subdomain umzuleiten? </p> <p>Wenn ein Benutzer beispielsweise eine Anfrage an diese URL sendet</p> <pre class="brush:php;toolbar:false;">mydomain.com/page/1</pre> <p>Zu dieser URL weiterleiten</p> <pre class="brush:php;toolbar:false;">subdomain.mydomain.com/page/1</pre> <p>Ich bevorzuge es, es innerhalb des Laravel-Projekts zu erledigen. Keine NGINX-Konfiguration. </p>
P粉310931198P粉310931198450 Tage vor502

Antworte allen(1)Ich werde antworten

  • P粉052686710

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

    要在 Laravel 级别处理此问题,您可以使用中间件。中间件提供了一种方便的机制来检查和过滤进入应用程序的 HTTP 请求。

    以下是您可以如何执行此操作的示例。

    首先,通过运行以下命令创建一个新的中间件:

    php artisan make:middleware SubdomainRedirectMiddleware

    接下来,打开新创建的文件app/Http/Middleware/SubdomainRedirectMiddleware.php,并将重定向逻辑添加到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);
    }

    然后,你需要注册这个中间件。打开app/Http/Kernel.php,将以下行添加到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.

    ▽这是一个参考 https://www.w3schools.in/laravel/middleware

    Antwort
    0
  • StornierenAntwort