Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php ApiRest使用重写参数美化url_Php_.htaccess_Api_Rest_Url - Fatal编程技术网

Php ApiRest使用重写参数美化url

Php ApiRest使用重写参数美化url,php,.htaccess,api,rest,url,Php,.htaccess,Api,Rest,Url,我正在构建一个RestApi,我的url有问题。我想将“api.php?request=users”转换为“api/users”。但我也希望是迪纳米克。例如:如果用户键入“api/users/13”,我希望它与“api.php?request=users&id=13”相同。有没有办法让它成为迪纳米克?我必须单独创建每个案例吗?在这两种情况下如何做到这一点?非常感谢您的帮助 我认为您必须添加一个新的重写规则,因为您需要不同的变量 Options +FollowSymLinks RewriteEn

我正在构建一个RestApi,我的url有问题。我想将“api.php?request=users”转换为“api/users”。但我也希望是迪纳米克。例如:如果用户键入“api/users/13”,我希望它与“api.php?request=users&id=13”相同。有没有办法让它成为迪纳米克?我必须单独创建每个案例吗?在这两种情况下如何做到这一点?非常感谢您的帮助

我认为您必须添加一个新的重写规则,因为您需要不同的变量

Options +FollowSymLinks

RewriteEngine on

RewriteRule ^(.*)/(.*)/?$ $1.php?request=$2
RewriteRule ^(.*)/(.*)/(.*)/?$ $1.php?request=$2&id=$3

我认为您必须添加一个新的重写规则,因为您需要不同的变量

Options +FollowSymLinks

RewriteEngine on

RewriteRule ^(.*)/(.*)/?$ $1.php?request=$2
RewriteRule ^(.*)/(.*)/(.*)/?$ $1.php?request=$2&id=$3

最好的方法是更改.htaccess文件,如下所示:

重新启动发动机
重写规则^api/([^/])/([^/])/([^/]*)$/api.php?请求=$1&id=$2&state=$3[L]

原始URL:

重写的URL:

更新:如果您不知道参数的数量,请为每个“级别”再添加一次重写:

重写规则^api/([^/])/([^/])/([^/])$/api.php?请求=$1[L]
重写规则^api/([^/])/([^/])/([^/])$/api.php?请求=$1&id=$2[L]
重写规则^api/([^/])/([^/])/([^/])/([^/]*)$ /api.php?请求=$1&id=$2&status=$3[L]


关于。

最好的方法是更改.htaccess文件,如下所示:

重新启动发动机
重写规则^api/([^/])/([^/])/([^/]*)$/api.php?请求=$1&id=$2&state=$3[L]

原始URL:

重写的URL:

更新:如果您不知道参数的数量,请为每个“级别”再添加一次重写:

重写规则^api/([^/])/([^/])/([^/])$/api.php?请求=$1[L]
重写规则^api/([^/])/([^/])/([^/])$/api.php?请求=$1&id=$2[L]
重写规则^api/([^/])/([^/])/([^/])/([^/]*)$ /api.php?请求=$1&id=$2&status=$3[L]


注意。

谢谢,但参数的数量不是静态的,有时是2、3或4。此示例仅适用于3(请求、id、状态)。否?谢谢,但参数的数量不是静态的,有时是2、3或4。本例仅适用于3(请求、id、状态)。不