Ich habe einen laufenden Blog basierend auf WP. Derzeit entwickle ich eine neue Web-App mit Laravel, die auf der gleichen (Sub-) Domain laufen sollte. Die neue Web-App sollte die neue Startseite/Startseite/Document-Root www.xyz.xyz/ der Website sein, aber ich möchte nicht die aktuelle WP-URL-Struktur ändern - ich möchte WP nicht in einem Unterverzeichnis ausführen - also sollte alles so bleiben, wie es für WP und seine bestehenden URLs ist, daneben sollte die Startseite von Laravel und nicht von WordPress bedient werden.Wordpress & Laravel nginx
Natürlich könnte es vorkommen, dass ein Wordpress-Post und eine Laravel-Webseite denselben Slug verwenden, obwohl dies nicht der Fall sein sollte, in diesem Fall sollte die Laravel-Seite bedient werden.
Ich benutze Nginx als Webserver. Hat jemand so etwas schon einmal gemacht? Kann es auf Nginx-Ebene erreicht werden? Hat jemand einen Vorschlag zur Lösung dieses Problems?
Die Erkennung, ob Laravel die Seite im Exception-Handler bedienen kann, wenn WP auch keine Seite zu liefern hat, wird dafür verantwortlich sein, das 404 - Curling des WP-Blogs zu zeigen, solange Sie laufen nicht auf der gleichen Subdomain/Webserver.
Die Hauptfrage ist, wie die index.php und nginx konfiguriert werden müssen, um sowohl Laravel & WP auf der gleichen (Sub-) Domäne zu dienen und im selben Verzeichnis zu laufen.
/** * Rendern Sie eine Ausnahme in eine HTTP-Antwort. * * @param \ Illuminate \ Http \ Antrag $ request * @param \ Exception $ Ausnahme * @return \ Illuminate \ Http \ Antwort */ public function render ($ request, Exception $ Ausnahme) {
if ($this->isHttpException($exception)) {
$statusCode = $exception->getStatusCode();
switch ($statusCode) {
case '404':
if(Cache::store('file')->has('magazin-startpage')) {
echo Cache::store('file')->get('magazin-startpage');
return;
}
$queryParameter = str_replace($request->url(), "",
$request->fullUrl());
$path = $request->getPathInfo();
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt ($ch, CURLOPT_PORT , 443);
curl_setopt($ch, CURLOPT_URL,"https://www.blog.xyz"
.$path.$queryParameter);
curl_setopt($ch, CURLOPT_POST, 1);
$blog = curl_exec ($ch);
curl_close ($ch);
Cache::store('file')->put('www.blog.xyz', $blog, 60);
echo $blog;
return;
break;
}
}
return parent::render($request, $exception);
}
Danke.
danke für deine antwort, ich habe meinen initialen post bearbeitet, die 404-erkennung ist bereits erfolgt, ähnlich wie bei ihrem zweiten ansatz, aber im error-handler. Haben Sie Beispiele wie solch eine index.php + nginx config aussehen sollte? Danke. – jo182
Ich habe kein Beispiel, aber ich denke, dass Sie in der Lage sein sollten, die Wordpress index.php Datei zu verwenden und einfach den Inhalt anstelle der curl Anfrage zu importieren, da Sie alle Dateien direkt auf Ihrem Webserver haben. Da curl einfacher ist, könnte WP tatsächlich auf einer anderen Subdomain laufen und nur curl verwenden, um es so aussehen zu lassen, als wäre es auf dieser Domain zur Außenwelt. – Loren