2016-09-07 132 views
1

我是新來使用Slim,並試圖創建一個簡單的文件託管網站。我試圖通過使用$app->get()通過URL設置我的當前目錄。有沒有一種方法,我可以有一個網址,如:site.com/panel/documents/text/word/etcpanel之後的所有內容都被解釋爲當前路徑?目前,我有這樣的代碼:Slim框架URL作爲文件路徑

$app->get('/panel/{path}', function ($request, $response) { 
    $path = $request->getAttribute('path'); 

    return $path; 
}); 

的問題是,我只能返回path當只有一個路徑設置,即/panel/documents返回documents。如果我執行諸如/panel/documents/text之類的操作,它將返回一個未找到的錯誤。任何幫助都會很棒。謝謝!

回答

1

假設你使用的是最新的超薄V3,你可以使用佔位符來實現你的目標,按照文件: http://www.slimframework.com/docs/objects/router.html#route-placeholders

查找無限可選PARAMS

$app->get('/news[/{params:.*}]', function ($request, $response, $args) { 
    $params = explode('/', $request->getAttribute('params')); 

    // $params is an array of all the optional segments 
}); 

你的情況,這將是:

$app->get('/panel/{path:.*}', function ($request, $response) { 
    $path = $request->getAttribute('path'); 

    return $path; 
}); 
+0

這是工作,但拋出問題與我的CSS文件。有沒有解決方法,或者我應該使用直接路徑到文件的URL? –

+0

我會看你的.htaccess文件或網絡服務器配置。如果找不到本地文件,應確保只重定向到PHP。 http://www.slimframework.com/docs/start/web-servers.html上的信息是應該如何設置的。如果你沒有,你可能需要解決你的CSS文件路徑。 –

+0

我的'.htaccess'正在使用Apache推薦的配置。還有什麼我需要添加? –