Wamp .htaccess RewriteRule не применяется (с загруженным rewrite_module) - PullRequest
0 голосов
/ 15 февраля 2019

В папке " api " внутри папки Wamp " www " у меня есть следующий файл " api.php ":

<?php
    header('Content-Type: application/json');

    $result = NULL;

    if($_GET["token"]==="just_a_test_value_atm")
    {
        switch($_SERVER["REQUEST_METHOD"])
        {
        case "GET":
            $result = array("status" => "success", "data" => array("param" => $_GET["query"], "type" => "get"));
            break;
        case "POST":
            $result = array("status" => "success", "data" => array("param" => $_GET["query"], "type" => "post"));
            break;
        default:
            $result = array("status" => "fail", "msg" => "Invalid HTTP method \"".$_SERVER["REQUEST_METHOD"]."\".");
        }
    }
    else
    {
        $result = array("status" => "fail", "msg" => "Invalid token.");
    }

    echo json_encode($result);
?>

И следующий файл " .htaccess " рядом с ним:

RewriteEngine on

# QSA : Query String Append
RewriteRule ^api/v1/(.*)$ api.php?query=$1 [L,QSA]

Когда проект загружается на мой веб-сайт (размещенный на planethoster), следующий URL-адрес вызывает:

http://xyz.planethoster.world/api/v1/abc/def.json&token=just_a_test_value_atm

работает нормально, возвращая:

{"status":"success","data":{"param":"abc\/def.json","type":"get"}}

Но когда я пытаюсь проверить его локально с помощью Wamp (с загрузкой rewrite_module на Apache), следующий URL-вызов:

http://localhost/api/api/v1/abc/def.json&token=just_a_test_value_atm

возвращает:

<br />
<font size='1'><table class='xdebug-error xe-notice' dir='ltr' border='1' cellspacing='0' cellpadding='1'>
<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Notice: Undefined index: token in C:\wamp64\www\api\api.php on line <i>6</i></th></tr>
<tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>
<tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr>
<tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0001</td><td bgcolor='#eeeeec' align='right'>400984</td><td bgcolor='#eeeeec'>{main}(  )</td><td title='C:\wamp64\www\api\api.php' bgcolor='#eeeeec'>...\api.php<b>:</b>0</td></tr>
</table></font>
{"status":"fail","msg":"Invalid token."}

Что здесь не так?

...