Выборка и печать данных JSON без расширения .php

Я хочу добиться чтения и печати данных JSON без расширения URL-адреса .php. Но сервер возвращает ошибку.

Мой PHP-код (data.php) выглядит следующим образом:

    <?php

// GET FULL PAGE URL
$link = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];

// GET EVRYHING AFTER THE LAST SLASH
$params = substr($link, strrpos($link, '/') + 1);

// PASS THE PARAMETERS TO API
$url = "http://api.plos.org/$params";

//read json file from url in php

$readJSONFile = file_get_contents($url);
header('Content-Type: application/json'); //
print_r($readJSONFile); // display contents

Файл .htaccess для удаления расширения .php

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

Я получаю правильные данные, если я получаю доступ с расширением .php (https://local.test/data.php/search?q=title:ДНК), когда я пытался без расширения .php, он возвращал ошибку 404. https://local.test/data/search?q=title:ДНК

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
25
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете попробовать изменить содержимое файла .htaccess с помощью:

    RewriteEngine On
    RewriteBase /
    RewriteRule ^data/search$ data.php [L]
    RewriteCond %{REQUEST_FILENAME}.php -f
    RewriteRule ^(.*)/?$ /$1.php  [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-l
    RewriteRule . index.php [L]

Привет, спасибо, это сработало! У меня есть динамические параметры (DNA&07APR2022&2022-03-30&17500) domain.com/api/chart.php/DNA&07APR2022&2022-03-30&17500. Как я могу добиться этого без .PHP? Спасибо еще раз

Learn the Code 03.04.2022 13:49

Может быть, вы можете попробовать RewriteRule ^api/chart/([^/]*)/?([^/]*)/?([^/]*)$ api/chart.php chart.php?id=$1&param2=$2&param3=$3&param4=$4 [L], так что URL будет domain.com/api/chart/DNA/07APR2022/2022-03-30/17500

Dori Rina 03.04.2022 14:03

Спасибо за ваш ответ. Выдавало внутреннюю ошибку сервера

Learn the Code 03.04.2022 14:16

Вот как выглядит мой файл .htaccess: RewriteEngine On RewriteBase / RewriteRule ^api/chart/([^/]*)/?([^/]*)/?([^/]*)$ api/chart.php chart.php?id=$1&param2=$2&param3=$3&param4=$4 [L] RewriteCond %{REQUEST_FILENAME}.php -f RewriteRule ^(.*)/?$ /$1.php [L] RewriteCond %{REQUEST_FILENAME} ! -f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-l RewriteRule . index.php [Л]

Learn the Code 03.04.2022 14:22
RewriteRule ^api/chart/([^/]*)/?([^/]*)/?([^/]*)/?([^/]*)$ api/chart.php?param1=$1&param2=$2&param3=$3&param4=$4 [L]
Dori Rina 03.04.2022 14:49

это может работать правильно

Dori Rina 03.04.2022 14:51

Другие вопросы по теме