我想只允许特权用户下载一些特殊文件。
所以我在下面配置了apache2,这使得/data/model/userModel
无法直接访问。
Alias /user_model "/data/model/userModel"
<Directory /data/model/userModel>
Order allow,deny
Deny from all
</Directory>
虽然/data/model/userModel
可能包含子文件夹,例如
/data/model/userModel/pic/tiny/aaa.png
/data/model/userModel/txt/aaa.txt
/data/model/userModel/model/0/13/aaa.zip
此路径仅用于文件下载,在控制器方法中我只是检查用户是否有权下载文件。所以我尝试只使用一条路线进行这些修补。例如,
Route::get('user_model/*', 'ModelController@user_model');
虽然不起作用。路线中的*
只能匹配网址的一个网段。
如何使用可伸缩段长度创建一个路由匹配URL。 我不知道我的路线设计是否合适。
答案 0 :(得分:2)
How do I make a Catch-All Route in Laravel 5.2在Nathan Heffley的评论中引用,我解决了这个问题。
使用Route::get('user_model/{path}', 'ModelController@user_model')->where('path', '.*');
代替Route::get('user_model/*', 'ModelController@user_model');
。
注意:
*
中Route::get('user_model/*', 'ModelController@user_model');
只能匹配一个细分受众群。
*
Route::get('user_model/{path}', 'ModelController@user_model')->where('path', '.*');
可以匹配多个细分受众群。