代码之家  ›  专栏  ›  技术社区  ›  Steven2105

如何在php url中的'@'选择器之后获取所有内容

php
  •  0
  • Steven2105  · 技术社区  · 7 年前

    例子: https://cdn.steven2105.de/jquery@3.3.0

    <?php
    $error = false;
    
    $path = str_replace("/", "", $_SERVER['REQUEST_URI']);
    
    switch($path) {
        case "jquery":
            $toOpen = "jquery/3.3.1/jquery.min.js";
            break;
        case "jquery@3.3.0":
            $toOpen = "jquery/3.3.0/jquery.min.js";
            break;
        case "vue":
            $toOpen = "vue/2.6.10/vue.min.js";
            break;
        case "bootstrap-css":
            $toOpen = "bootstrap/4.3.1/bootstrap.min.css";
            break;
        case "bootstrap-js":
            $toOpen = "bootstrap/4.3.1/bootstrap.min.js";
            break;
        case "baguettebox-css":
            $toOpen = "baguettebox/1.11.0/baguettebox.min.css";
            break;
        case "baguettebox-js":
            $toOpen = "baguettebox/1.11.0/baguettebox.min.js";
            break;
        case "popper":
            $toOpen = "popper/1.14.7/popper.min.js";
            break;
        default:
            $error = true;
            break;
    }
    
    if (!$error) { 
        header("Location: https://cdn.steven2105.de/libs/$toOpen");
    } else {
        include_once "website.php";
    }
    

    我有不同的诽谤 https://cdn.steven2105.de/libs/ 例如 https://cdn.steven2105.de/libs/jquery https://cdn.steven2105.de/libs/jquery/3.3.1/jquery.min.js . 我想用较短的前缀访问这些链接,如 https://cdn.steven2105.de/jquery@3.3.1 . 如果我使用“@”字符,它应该重定向到目录中的版本 https://cdn.steven2105.de/libs/jquery/ 如果没有“@”,则应重定向到最新版本。

    最简单的方法是什么?

    2 回复  |  直到 7 年前
        1
  •  1
  •   lifeisbeautiful    7 年前

    你可以用 explode 功能。它作为数组输出并获取它。

    <?php
    
    $URL = ' https://cdn.steven2105.de/jquery@3.3.0';
    $Result = explode('@', $URL);
    echo("<pre>");print_r($Result[1]);
    
    ?>
    
        2
  •  0
  •   Mark    7 年前

    在Apache中重写规则( https://httpd.apache.org/docs/2.4/rewrite/remapping.html )应该会成功的。我希望Nginx提供类似的功能。

    如果您使用Apache或Nginx来完成这项工作,它会更快,因为您不会有运行PHP脚本的开销。

    推荐文章