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 可能有子文件夹,例如

此路径仅用于文件下载,在控制器方法中我只是检查用户是否有权下载文件。所以我尝试只为这些路径使用一条路线。例如,

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', '.*'); 可以匹配多个段。