2016-09-07 13 views
1

私はSlimを使用するのが初めてで、単純なファイルホスティングサイトを作成しようとしています。 $app->get()を使用してURLを介して現在のディレクトリを設定しようとしています。私はどこのURLを持つことができる方法はありますか:site.com/panel/documents/text/word/etcpanelの後のすべてが現在のパスとして解釈されますか?スリムフレームワークのURLをファイルのパスとして

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

    return $path; 
}); 

問題は、私が唯一の唯一のパスが設定されている場合pathを返すことができるよということである、すなわち:私は現在、このコードを持っています/panel/documentsdocumentsを返します。私が/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ファイルまたはWebサーバーの設定を調べます。ローカルファイルが見つからない場合にのみPHPにリダイレクトするようにしてください。 http://www.slimframework.com/docs/start/web-servers.htmlに関する情報は、どのように設定する必要があります。 CSSファイルへのパスを指定する必要があるかもしれません。 –

+0

私の '.htaccess'は、Apacheの推奨設定を使用しています。私は追加する必要がある何か他にありますか? –

関連する問題