2016-07-26 135 views
0

我最近開始laravel的教程「快速啓動」和我被困在此錯誤:在此服務器上未找到請求的URL /任務。 laravel /快速啓動

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('/'); 
}); 

我試圖用url(),我發現,如果URL有「的index.php ',它工作,否則它不起作用。所以我認爲可能由.htaccess引起的問題,但我嘗試失敗。

+0

能夠在你的Apache –

+0

句子結構,代碼和引用塊的mod_rewrite – jwvh

回答

0

在你的.env文件中,你可以添加一個常量。

DOMAIN = http://localhost/laravelapp/public/(或如何本地主機路徑是)

然後在你的形式添加動作<form action="{{env('DOMAIN')}}/task">。

因爲我認爲你的情況,如果你只有<form action="/task">它將重定向到http://localhost/task

+0

謝謝。真的,請求將重定向到http://本地主機/任務。我試圖解決的問題在您的方式,然後報告錯誤:'未定義的域'。我認爲該常量不能從文件的角度來看availbale。我應該渲染一個變量,通過'view()'來查看? –

+0

對不起,我編輯了代碼。 action attr中的「/ task」在大括號內。應該出去。希望它可以這樣工作:) –

0

感謝所有的愛好者,問題已經解決。 1.check mod_rewrite apache的狀態; 2.檢查'Options FollowSymLinks AllowOverride none'的配置,你需要修改它爲'Options FollowSymLinks AllowOverride all'。 3.edit你的.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}] 

現在,重新啓動Apache的,它的工作原理。

:)

相關問題