如何在没有.php的情况下重定向php文件
我有一个API如何在没有.php的情况下重定向php文件,php,rest,Php,Rest,我有一个APIlist.php,它将生成如下响应 [ { id: "10000", name: "John Doe", designation: "Android Developer", mobile: "5550088966", email: "john@doe.com" }, { id: "10001", name: "Foo Bar", designation: "UI Designer", mobile: "5550158556", email:
list.php
,它将生成如下响应
[
{
id: "10000",
name: "John Doe",
designation: "Android Developer",
mobile: "5550088966",
email: "john@doe.com"
},
{
id: "10001",
name: "Foo Bar",
designation: "UI Designer",
mobile: "5550158556",
email: "foo@bar.com"
}
]
如果我调用API,比如list.php/10000
,它将只返回id为
{
id: "10000",
name: "John Doe",
designation: "Android Developer",
mobile: "5550088966",
email: "john@doe.com"
}
我已经为.htaccess
文件编写了一些代码来调用API,如list
和list/10000
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php [NC,L]
但是只有list
工作,但是list/10000
不工作,我怎么解决这个问题
这是php脚本
<?Php
// Create database authentication and connection
$dbHost = "localhost";
$dbName = "id10693574_android";
$dbUsername = "id10693574_aseemsalim";
$dbPassword = "aseemsalim@12";
$connection = mysqli_connect($dbHost,$dbUsername,$dbPassword,$dbName);
$where='';
$url=$_SERVER['REQUEST_URI'];
// print_r($url);exit;
$url_array=explode('list.php',$url);
//print_r($url_array);
//exit;
if(!empty($url_array['1']))
{
$slashid=$url_array[1];
$id=substr($slashid,1);
$where= "WHERE id=$id";
}
//exit;
$sql = "select * from employees $where";
$results= mysqli_query($connection,$sql);
$response = array();
while ($row=mysqli_fetch_array($results)){
array_push($response,array('id'=>$row['id'],'name'=>$row['name'],'designation'=>$row['designation'],'mobile'=>$row['mobile'],'email'=>$row['email']));
}
if($response){
echo json_encode($response);
}
else{
echo json_encode(null);
}
mysqli_close($connection);
?>
您可以尝试
重写规则([a-z]+)\/([0-9]+)\/?$list.php?param=$1¶m2=$2[NC]
然后,您可以调用$\u REQUEST
['param']
和['param2']
访问此URL的API:
https://restapiaseem.000webhostapp.com/api/employees/list.php
它的工作原理是:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/list/(.*)$ $1/list.php?id=$2 [L,QSA]
RewriteRule ^(.*)/list $1/list.php
您也可以在此处进行测试:您应该能够使用以下内容
RewriteEngine on
RewriteBase /
RewriteRule ^list/([0-9]+)/?$ /api/employees/list.php?id=$1 [NC,L]
这将允许您使用url,例如:
https://restapiaseem.000webhostapp.com/list/1000
这意味着您可以访问
$\u GET['id']
,并在生成记录集的任何sql查询中使用它https://restapiaseem.000webhostapp.com/api/employees/list.php上面添加的php代码