JSON 不带 .php 扩展名的数据获取和打印
JSON Data Fetch and Print without .php extension
我想实现不带 .php URL 扩展名的 JSON 数据的读取和打印。但是服务器返回错误。
我的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 ^(.*)$ .php
如果我使用 .php 扩展名 (https://local.test/data.php/search?q=title:DNA) 访问,我将获得正确的数据,而当我尝试不使用 .php 扩展名时,它返回了 404 错误.
https://local.test/data/search?q=title:DNA
您可以尝试更改 .htaccess
文件内容:
RewriteEngine On
RewriteBase /
RewriteRule ^data/search$ data.php [L]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)/?$ /.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule . index.php [L]
我想实现不带 .php URL 扩展名的 JSON 数据的读取和打印。但是服务器返回错误。
我的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 ^(.*)$ .php
如果我使用 .php 扩展名 (https://local.test/data.php/search?q=title:DNA) 访问,我将获得正确的数据,而当我尝试不使用 .php 扩展名时,它返回了 404 错误. https://local.test/data/search?q=title:DNA
您可以尝试更改 .htaccess
文件内容:
RewriteEngine On
RewriteBase /
RewriteRule ^data/search$ data.php [L]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)/?$ /.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule . index.php [L]