laravel 具有可缩放分段长度的路线
laravel route with scalable segments length
我想只允许特权用户下载一些特殊文件。
所以我用下面的配置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.
的一段
如何使一条路线匹配 url 具有可缩放的分段长度。 不知道我这里的路线设计是否合适
受到 in Nathan Heffley的启发,我解决了。
使用 Route::get('user_model/{path}', 'ModelController@user_model')->where('path', '.*');
而不是 Route::get('user_model/*', 'ModelController@user_model');
。
注:
*
in Route::get('user_model/*', 'ModelController@user_model');
只能匹配一个段。
*
in Route::get('user_model/{path}', 'ModelController@user_model')->where('path', '.*');
可以匹配多个段。
我想只允许特权用户下载一些特殊文件。
所以我用下面的配置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.
如何使一条路线匹配 url 具有可缩放的分段长度。 不知道我这里的路线设计是否合适
受到
使用 Route::get('user_model/{path}', 'ModelController@user_model')->where('path', '.*');
而不是 Route::get('user_model/*', 'ModelController@user_model');
。
注:
*
inRoute::get('user_model/*', 'ModelController@user_model');
只能匹配一个段。*
inRoute::get('user_model/{path}', 'ModelController@user_model')->where('path', '.*');
可以匹配多个段。