我正在通过PHP创建一个API。我需要让用户看到特定的用户。例如,如果有人去mysite.com/users/2
,他必须获得ID = 2的有关用户的数据。
这是我的.htaccess文件:
RewriteEngine On
RewriteCond %{REQUEST_URI} !\.css$
RewriteRule ^([-/_a-zA-Z0-9\s]*)$ index.php?url=$1 [QSA,L]
index.php
中的$ url变量包含整个URL(例如users/2
)
我使用if($url == "users"){ //code }
之类的路线,但是如何使用id
进行各种活动?
答案 0 :(得分:1)
由于MSG_PEEK
中包含了所有内容,因此您只需使用$url
这是一个例子:
explode()
这不会处理任何错误,正如您在注释中所述,您需要实现这些错误。因此,除非这是一个很小的项目,否则使用Laravel之类的框架似乎更安全,更可维护,更快,等等,或者使用微型框架Lumen或Slim您只需要几个功能。
答案 1 :(得分:0)
您不必在RewriteRule中包含网址:
# Redirect all requests to index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
然后在您的index.php中:
$urlparts = explode("/", substr(@$_SERVER['PATH_INFO'], 1));
if($urlparts[0] == 'users'){
//find user with id $urlparts[1]
}