REST与PHP,如何选择查询字符串
对于这个示例,我将显示两种类型的查询字符串。 我知道web服务的查询字符串应该是1而不是2 我的问题是:如何在php中管理第一个?这不是对第二个url的重写吗 使用#2查询字符串,我假设有一个findbyproductcode.php页面处理GET变量(?productcode=4xheua),用这个productcode检查一些数据库并返回一些数据REST与PHP,如何选择查询字符串,php,web-services,rest,Php,Web Services,Rest,对于这个示例,我将显示两种类型的查询字符串。 我知道web服务的查询字符串应该是1而不是2 我的问题是:如何在php中管理第一个?这不是对第二个url的重写吗 使用#2查询字符串,我假设有一个findbyproductcode.php页面处理GET变量(?productcode=4xheua),用这个productcode检查一些数据库并返回一些数据 #1应该如何工作?我应该有一个4xxheua.php吗?(显然不是…)。。。我就是不明白。你喜欢1胜过2的唯一原因是因为1在语义上更直观 有如
#1应该如何工作?我应该有一个4xxheua.php吗?(显然不是…)。。。我就是不明白。你喜欢1胜过2的唯一原因是因为1在语义上更直观 有如下URL是有意义的: 而不是 据说这也有助于你的搜索引擎优化得分
如果您只是在构建一个Web服务,比如:机器与机器对话,那么URL看起来是什么并不重要。您也可以只使用一个URL来接受所有输入,并根据输入数据在内部执行“路由”。您选择1而不是2的唯一原因是1在语义上更直观 有如下URL是有意义的: 而不是 据说这也有助于你的搜索引擎优化得分
如果您只是在构建一个Web服务,比如:机器与机器对话,那么URL看起来是什么并不重要。您也可以只拥有一个URL,它接受所有输入,并根据输入数据在内部执行“路由”操作。如果您正试图编写一个API,那么有很多事情要做-是的,需要重写,但是不必为所有参数设置一个页面-Luracast有一个很棒的开源Rest API调用ed restler,可以开始使用。如果你想编写一个API,那么有很多事情要做-是的,需要重写,但是不一定要有一个页面来显示所有参数-Luracast有一个很棒的开源Rest API调用ed restler,可以开始使用。一个例子来实现#1 1:将不带图像、css(,等等)的所有路径发送到
root/index.php
(例如Apache上的mod_rewrite)2:在
index.php
中,从$\u服务器['pathinfo']
或其他方式获取参数。3:解析并处理它 如果使用Apache和mod_rewrite,请检查文档:
root/index.php
(例如Apache上的mod_rewrite)2:在
index.php
中,从$\u服务器['pathinfo']
或其他方式获取参数。3:解析并处理它 如果使用Apache和mod_rewrite,请检查文档:
是的,只是URL重写。目前我正在使用Symfony 1.3,他们的htaccess如下所示:
Options +FollowSymLinks +ExecCGI
<IfModule mod_rewrite.c>
RewriteEngine On
# uncomment the following line, if you are having trouble
# getting no_script_name to work
#RewriteBase /
# we skip all files with .something
#RewriteCond %{REQUEST_URI} \..+$
#RewriteCond %{REQUEST_URI} !\.html$
#RewriteRule .* - [L]
# we check if the .html version is here (caching)
RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
# no, so we redirect to our front web controller
RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>
Options+FollowSymLinks+ExecCGI
重新启动发动机
#如果遇到问题,请取消对以下行的注释
#无法使用脚本名称
#重写基/
#我们跳过了所有的文件
#重写条件%{REQUEST_URI}\+$
#重写条件%{REQUEST\u URI}!\。html$
#重写规则。*-[L]
#我们检查.html版本是否在这里(缓存)
重写规则^$index.html[QSA]
重写规则^([^.]+)$$1.html[QSA]
重写cond%{REQUEST_FILENAME}-F
#不,所以我们重定向到前端web控制器
重写规则^(.*)$index.php[QSA,L]
在这种情况下,只需将index.php作为控制器,就可以将此vhost的所有URL发送给它。轻松点 是的,只是URL重写。目前我正在使用Symfony 1.3,他们的htaccess如下所示:
Options +FollowSymLinks +ExecCGI
<IfModule mod_rewrite.c>
RewriteEngine On
# uncomment the following line, if you are having trouble
# getting no_script_name to work
#RewriteBase /
# we skip all files with .something
#RewriteCond %{REQUEST_URI} \..+$
#RewriteCond %{REQUEST_URI} !\.html$
#RewriteRule .* - [L]
# we check if the .html version is here (caching)
RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
# no, so we redirect to our front web controller
RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>
Options+FollowSymLinks+ExecCGI
重新启动发动机
#如果遇到问题,请取消对以下行的注释
#无法使用脚本名称
#重写基/
#我们跳过了所有的文件
#重写条件%{REQUEST_URI}\+$
#重写条件%{REQUEST\u URI}!\。html$
#重写规则。*-[L]
#我们检查.html版本是否在这里(缓存)
重写规则^$index.html[QSA]
重写规则^([^.]+)$$1.html[QSA]
重写cond%{REQUEST_FILENAME}-F
#不,所以我们重定向到前端web控制器
重写规则^(.*)$index.php[QSA,L]
在这种情况下,只需将index.php作为控制器,就可以将此vhost的所有URL发送给它。轻松点 “我知道一个web服务的查询字符串应该是1而不是2”-为什么?我真的看不出它的方便性,但它被许多更优雅的人引用,不知何故它是正确的方式…但是,这只是一个url重写规则吗?我认为没有,我只是不知道这应该如何工作…这是RESTAPI的工作方式,url/resource\u name/id。顺便说一句,服务器端(rest服务器)和客户端URL由大量现有软件处理。例如,我在客户端使用CodeIgniter Rest server处理请求和Backbone.js。虽然您可以(如果您愿意)通过GET/POST/DELETE传递额外的参数,但这两种方法都可以很好地工作并自动处理URL/PUT@FritsvanCampen因为这样搜索引擎更容易索引所有页面。查询字符串应该用于添加一些特定的过滤器,请参见“我知道web服务的查询字符串应该看起来不止1个”-为什么?我真的看不出它的方便性,但它被许多更优雅的人引用,不知何故这是正确的方法…但是,这只是一个url重写规则吗?我认为没有,我只是不知道这应该如何工作…这是RESTAPI的工作方式,url/resource\u name/id。顺便说一句,服务器端(rest服务器)和客户端URL由大量现有软件处理。例如,我在客户端使用CodeIgniter Rest server处理请求和Backbone.js。虽然您可以(如果您愿意)通过GET/POST/DELETE传递额外的参数,但这两种方法都可以很好地工作并自动处理URL/PUT@FritsvanCampen因为这样搜索引擎更容易索引所有pag