Ich habe ein Problem mit einem Redirect in Laravel. Es handelt sich um eine lokale Umgebung, XAMPP Version 8.1.12, Laravel 8. Auf einer AWS Umgebung funktioniert der Code, von daher gehe ich davon aus, dass die Ursache in der Konfigration bei mir lokal liegt, kann aber leider nicht finden wo und hoffe hier Hilfe zu finden.
Der Redirect ist nach dem Login. In der folgenden IF-Abfrage springt der Code and die richtige Stelle (habe ich getestet), aber es wird nicht das Dashboard aufgerufen, sondern die Software bleibt im Login. Hier der Code:
- Code: Select all
public function postLogin(Request $request)
{
$result = User::checkCredential($request->all());
if ($result['status'] == 0) {
return redirect()->to('/register')->with('message', $result['message']);
} elseif ($result['status'] == 1) {
return redirect()->to('/dashboard')->with('message', $result['message']);
} elseif ($result['status'] == 2) {
return redirect()->to('/login')->withInput()->with('message', $result['message'])->with('resend_status', 1);
} else {
return redirect()->to('/login')->with('message', $result['message']);
}
}
Die Route existiert (und wird auf dem Server auch ohne Probleme angesprungen). Ich habe beim entsprechenden "elseif" ein dd eingefügt und bekomme dort folgendes Ergebnis:
- Code: Select all
Illuminate\Http\RedirectResponse {#807 ▼
+headers: Symfony\Component\HttpFoundation\ResponseHeaderBag {#782 ▶}
#content: """
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<meta http-equiv="refresh" content="0;url='http://mesnja.local/dashboard'" />
<title>Redirecting to http://mesnja.local/dashboard</title>
</head>
<body>
Redirecting to <a href="http://mesnja.local/dashboard">http://mesnja.local/dashboard</a>.
</body>
</html>
"""
#version: "1.0"
#statusCode: 302
#statusText: "Found"
#charset: null
#targetUrl: "http://mesnja.local/dashboard"
#request: Illuminate\Http\Request {#44 ▶}
#session: Illuminate\Session\Store {#341 ▶}
+original: null
+exception: null
}
Ich habe die .htaccess geprüft, sie entspricht der vom Server (wo es funktioniert):
- Code: Select all
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
mod_rewrite ist enabled.
Ich habe verschiedene Versionen von Apache probiert, den Code nei geklont und alle Depenencies neu installiert, aber ohne irgendeinen Erfolg.
Wie gesagt: der exakt selbe Code läuft auf dem Server einwandfrei und auch in einer älteren Version war das nie ein Problem.
Hat irgendjemand eine Idee?