не работают файлы настроек сервера

не работают файлы настроек сервера

файлы сервера должны принимать запросы вот такие http://localhost/api/q , но в ответе я вижу исходный код страницы.Может быть файлы сервера не правильные?

на такие запросы он отвечает http://localhost/api/q.php,но мне нужно api реализовать поэтому нужно чтобы отвечал на такие http://localhost/api/q

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ index.php?q=$1 [L,QSA]

q.php

<?php 
$w=23; 
echo $w;
 ?>

файл index.php

var request = new XMLHttpRequest();
request.open('GET', 'http://localhost/api/q', true);

request.onload = function() {
  if (request.status >= 200 && request.status < 400) {
  //  var data = JSON.parse(request.responseText);
 var data = request.responseText;

    console.log(data);
  } else {
    // error
  }
};

request.send();

Ответы (1 шт):

Автор решения: Максим Степанов

Ваш файл index.php должен выглядеть так (с понятными упрощениями):

// принимаем запрос ЗДЕСЬ
$action = $_REQUEST['q'];

// в зависимости от задачи - получаем данные нужным способом. 
// Например, здесь просто выполняется q.php и выводится содержимое
ob_start();
include $action.'.php';  
$response = ob_get_contents();
ob_end_clean();

// В нужном формате отправляем ответ
echo $response;

Вообще ведь у вас как должно быть:

  1. Кто-то обращается к серверу http://localhost/api/q
  2. Вы, на сервере, в htaccess направляете его запрос на обработчик index.php
  3. В обработчике пишете php код, формируете ответ.
  4. Пользователь его принимает.

У вас же в пункте 2 почему-то код, который должен выполняться в браузере. Ваш апи, да и любой, в общем-то, вообще не связан с браузером, javascripta там быть не должно.

→ Ссылка