Wie leite ich alle Laravel-Routen mithilfe des Laravel-Routing-Systems auf eine neue Subdomain um?
P粉310931198
P粉310931198 2023-09-02 11:45:56
0
1
551
<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粉310931198
P粉310931198

Antworte allen(1)
P粉052686710

要在 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

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage