2017-11-07 15 views
2

特権を持つユーザーに特別なファイルをダウンロードさせたいだけです。スケーラブルなセグメントの長さを持つlaravelルート

私は/data/model/userModelに直接アクセスできないように、以下でapache2を設定します。

  • /data/model/userModel/pic/tiny/aaa.png
  • /data/model/userModel/txt/aaa.txt
  • /data/model/userModel/model/0/13/aaa.zip

このパスのような

Alias /user_model "/data/model/userModel" 
<Directory /data/model/userModel> 
      Order allow,deny 
      Deny from all 
</Directory> 

/data/model/userModelはサブフォルダを持っているかもしれないが、コントローラメソッドでは、単にファイルのダウンロードのためである私だけユーザーがリグを持っているかどうかを確認するhtファイルをダウンロードしてください。だから私はこれらのpathesのための唯一のルートを使用しようとします。たとえば、

Route::get('user_model/*', '[email protected]_model'); 

これは機能しませんが、経路内の*は、URLの1つのセグメントにのみ一致することができます。

どのようにスケーラブルセグメントの長さで1つの経路一致URLを作成できますか。 私はここのルートのデザインが適切であるかどうかわかりません。

+0

これはあなたが探しているものです:https://stackoverflow.com/questions/34831175/how-do-i-make-a-catch-all-route-in-laravel-5-2 –

+1

[Laravel 5.2でキャッチオールルートを作成するにはどうすればいいですか?](https://stackoverflow.com/questions/34831175/how-do-i-make-a-catch-all-route-in-laravel -5-2) –

+0

@NathanHeffleyありがとうございます。わたしにはできる。 –

答えて

1

How do I make a Catch-All Route in Laravel 5.2Nathan Heffleyさんのコメントで了解しました。私はそれを解決します。

Route::get('user_model/*', '[email protected]_model');の代わりにRoute::get('user_model/{path}', '[email protected]_model')->where('path', '.*');を使用してください。

Route::get('user_model/*', '[email protected]_model');

  • *は、唯一のセグメントを一致させることができます。

  • *Route::get('user_model/{path}', '[email protected]_model')->where('path', '.*');は、複数のセグメントに一致する可能性があります。

+1

あなた自身の答えを受け入れることができることを忘れないでください。 –

関連する問題