【问题标题】:Slim framework url as file pathSlim 框架 url 作为文件路径
【发布时间】:2017-01-15 07:01:59
【问题描述】:

我刚开始使用 Slim,正在尝试创建一个简单的文件托管站点。我正在尝试使用$app->get() 通过url 设置我的当前目录。有没有一种方法可以让我拥有一个 url,例如:site.com/panel/documents/text/word/etc panel 之后的所有内容都被解释为当前路径?我目前有这个代码:

$app->get('/panel/{path}', function ($request, $response) {
    $path = $request->getAttribute('path');

    return $path;
});

问题是我只能在只设置一个路径时返回 path,即 I.E. /panel/documents 返回documents。如果我执行诸如/panel/documents/text 之类的操作,它将返回一个未找到的错误。任何帮助都会很棒。谢谢!

【问题讨论】:

    标签: php rest url routing url-routing


    【解决方案1】:

    假设您使用的是最新的 Slim v3,您可以根据文档使用占位符来实现您的目标: http://www.slimframework.com/docs/objects/router.html#route-placeholders

    寻找无限的可选参数

    $app->get('/news[/{params:.*}]', function ($request, $response, $args) {
        $params = explode('/', $request->getAttribute('params'));
    
        // $params is an array of all the optional segments
    });
    

    在你的情况下是:

    $app->get('/panel/{path:.*}', function ($request, $response) {
        $path = $request->getAttribute('path');
    
        return $path;
    });
    

    【讨论】:

    • 这是有效的,但我的 CSS 文件出现了问题。是否有解决方法,或者我应该只使用文件 URL 的直接路径?
    • 我会查看您的 .htaccess 文件或网络服务器配置。如果找不到本地文件,您应该确保仅重定向到 PHP。 slimframework.com/docs/start/web-servers.html 上的信息是应该如何设置的。如果你可能需要解决你的 CSS 文件的路径。
    • 我的 .htaccess 正在使用 Apache 的推荐配置。我还有什么需要补充的吗?
    • 多么奇怪,如果可以找到它,它应该加载您的 css 文件,并且只有在您使用所描述的 .htaccess 时才重定向。您可以随时将 RewriteCond %{REQUEST_URI} !^/(css|assets|images)/(.*)$ 添加到 .htaccess,将 css|assets|images 等更改为您的实际资产目录。这将在RewriteCond %{REQUEST_FILENAME} !-f 线上方
    猜你喜欢
    • 1970-01-01
    • 2016-06-28
    • 1970-01-01
    • 2012-07-13
    • 1970-01-01
    • 1970-01-01
    • 2017-10-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多