【问题标题】:laravel route with scalable segments length具有可扩展段长度的 laravel 路线
【发布时间】:2018-04-19 08:40:05
【问题描述】:

我只想让特权用户下载一些特殊文件。

所以我在下面配置了 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 具有可扩展的段长度。 我不知道我这里的路线设计是否合适。

【问题讨论】:

标签: php laravel url routes apache2


【解决方案1】:

How do I make a Catch-All Route in Laravel 5.2Nathan Heffley的评论启发,我解决了。

使用Route::get('user_model/{path}', 'ModelController@user_model')-&gt;where('path', '.*'); 而不是Route::get('user_model/*', 'ModelController@user_model');

注意:

  • Route::get('user_model/*', 'ModelController@user_model');中的*只能匹配一个段。

  • * in Route::get('user_model/{path}', 'ModelController@user_model')-&gt;where('path', '.*'); 可以匹配多个段。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多