2016-07-26 10 views
0

ich das Tutorial ‚quickstart‘ von Laravel vor kurzem damit begonnen, habe ich an diesem Fehler fest:Die angeforderte URL/Aufgabe wurde auf diesem Server nicht gefunden. Laravel/quickstart

The requested URL /task was not found on this server.

env:wamp 
code: 
DocumentRoot: 'E:/workspace/laravelapp/public" 

    Route::post('/task',function(Request $request){ 

    $validator = Validator::make($request->all(),[ 
      'name' => 'required|max:255', 
    ]); 

    if($validator->fails()){ 
     return redirect('/') 
      ->withInput() 
      ->withError($validator); 
    } 
    //create task 
    $task = new task; 
    $task->name = $request->name; 
    $task->save(); 

    return redirect('/'); 
}); 

Ich versuchte url() zu verwenden, und ich finde, dass, wenn die URL hat ‚index.php ', es funktioniert, sonst funktioniert es nicht. Also ich denke das Problem verursacht durch .htaccess wahrscheinlich, aber was ich versucht habe gescheitert.

+0

ermöglichen mod_rewrite in Apache –

+0

Satzbau, Code und Kursblöcke – jwvh

Antwort

0

In Ihrer .env-Datei können Sie eine Konstante hinzufügen.

DOMAIN = http://localhost/laravelapp/public/(oder wie Sie Ihre localhost Pfad)

Dann in Ihrem Formular Aktion <form action="{{env('DOMAIN')}}/task" hinzufügen>.

Weil ich denke, in Ihrem Fall, wenn Sie nur haben, wird es auf http://localhost/task umleiten.

+0

Dank .Really, wird die Anforderung an http umleiten: // localhost/Aufgabe .i versucht, die Frage in Ihrer Art und Weise zu lösen, dann berichte Fehler: 'undefined domain'.ich denke, die Konstante kann nicht im Hinblick auf die Datei verfügbar sein. sollte ich eine Variable rendern, um sie über 'view()' anzuzeigen? –

+0

Sorry, ich habe den Code bearbeitet. Die "/ task" in der Aktion attr war in geschweiften Klammern. Sollte draußen sein. Hoffe es funktioniert so :) –

0

Vielen Dank für alle Enthusiasten, die Frage wurde gelöst. 1.check mod_rewrite status von apache; 2.Überprüfen Sie die Konfiguration von 'Optionen FollowSymLinks AllowOverride none', Sie müssen sie als 'Optionen FollowSymLinks AllowOverride all' ändern. 3. Bearbeiten .htaccess, exp:

<IfModule mod_rewrite.c> 
<IfModule mod_negotiation.c> 
    Options -MultiViews 
</IfModule> 

RewriteEngine On 

# Redirect Trailing Slashes If Not A Folder... 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)/$ /$1 [L,R=301] 

# Handle Front Controller... 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule^index.php [L] 

# Handle Authorization Header 
RewriteCond %{HTTP:Authorization} . 
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 

jetzt, starten Sie den Apache, es funktioniert.

:)

Verwandte Themen