我正在构建一个RestApi,但我遇到了网址问题。我想改变" api.php?request = users"进入" api / users"。但我也希望它是恐怖的。例如:如果用户键入" api / users / 13"我希望它与" api.php?request = users& id = 13"相同。有没有办法让它变得恐怖?我是否必须单独创建每个案例?在这两种情况下,如何做到这一点?非常感谢您的帮助!!
答案 0 :(得分:4)
最好的方法是更改.htaccess文件,如下所示:
RewriteEngine On RewriteRule ^ api /([^ /] )/([^ /] )/([^ /] *)$ / api.php?request=$1&id=$2&state= 3美元[L]
原始网址:
http://www.domain.com/api.php?request=mike&id=3&state=active
重写的网址:
更新: 如果您不知道参数的数量,请为每个“级别”添加一次重写:
RewriteRule ^ api /([^ /] )/([^ /] )/([^ /] )$ /api.php?request=$1 [L] <登记/> RewriteRule ^ api /([^ /] )/([^ /] )/([^ /] )$ /api.php?request=$1&id=$2 [ L]
RewriteRule ^ api /([^ /] )/([^ /] )/([^ /] *)$ /api.php?request=$1&id=$2&status=$3 [L]
问候。
答案 1 :(得分:1)
我认为你必须添加一个新的RewriteRule,因为你需要不同的变量。
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^(.*)/(.*)/?$ $1.php?request=$2
RewriteRule ^(.*)/(.*)/(.*)/?$ $1.php?request=$2&id=$3