我能够以某个IP地址访问我的网站,我将实现REST服务。我有一些PHP文件在数据库上执行操作,我从客户端调用它们。我使用linux ubuntu作为服务器,到目前为止我可以这样做:
http://xxx.xxx.xxx.xxx/api/create/?id=someId&val=someValue
http://xxx.xxx.xxx.xxx/api/delete/?id=someId
我可以这样做,因为在/ var / www / html里面我有一个名为api
的文件夹,其中包含另一个文件夹called
。 create
将文件index.php加入,这样我就可以省略它并执行上面提到的URL。
这很好但我不认为这是正确的方法。我是新手,所以我不知道该怎么做。经过一些研究,我发现我的目标可能是使用.htaccess
文件使用url重写来实现的,但我不确定。
我该怎么做?我是否必须将所有php文件放在一个文件夹中,然后使用htaccess文件? (的 ^ )
( ^ )更确切地说:而不是拥有此
http://xxx.xxx.xxx.xxx/api/create/index.php?id=someId&val=someValue
http://xxx.xxx.xxx.xxx/api/delete/index.php?id=someId
//and so on with other actions...
我是否必须创建一个像
这样的文件夹http://xxx.xxx.xxx.xxx/files/
包含我所有的php文件(create.php,delete.php,view.php ...)并使用htaccess重定向?
我看到网站使用www.domain.com/api/something/?data=Value
或www.domain.com/api/something/dataAbout/
提供api。他们正在做我对.htaccess所说的话吗?我希望我已经很好地解释了我的问题。
htaccess的:
RewriteEngine On
RewriteRule ^api/([\w-]+)/?$ files/$1.php [L,NC]
这是在/ var / www / html里面,我在/ home / username / api里面有api。
感谢Emma
答案 0 :(得分:3)
这样做:
files/
,create.php
,delete.php
等文件夹view.php
子目录中创建php文件(通过重命名您提到的每个index.php
文件)。 api
目录移到站点根目录之外的某个位置。完成后,请使用/var/www/html/
中的.htaccess文件:
RewriteEngine On
RewriteRule ^api/([\w-]+)/?$ files/$1.php [L,NC]
然后使用新网址:
http://xxx.xxx.xxx.xxx/api/create?id=someId&val=someValue
http://xxx.xxx.xxx.xxx/api/delete?id=someId
答案 1 :(得分:0)
首先,这不是创建RESTFUL API的正确方法。我的建议是你阅读一篇最佳实践文章。
您不应创建CREATE和DELETE文件夹。您应该使用HTTP操作。
要创建新记录,您应该使用POST。例如,POST /user
并在正文中传递用户的信息。
在另一个示例中,您可以使用不同的HTTP方法使用相同的路由:DELETE /user/1
删除用户,PATCH /user/1
编辑已存在的用户信息。
希望它对你有所帮助。