.htaccess 可以在api uri中使用点作为分隔符吗?比如api/Business.Country?

.htaccess 可以在api uri中使用点作为分隔符吗?比如api/Business.Country?,.htaccess,rewrite,restful-url,.htaccess,Rewrite,Restful Url,我的任务是制作一个RESTful api,非常简单,只提供几个表。例如,您应该能够按企业或消费者查找国家,或者按国家或州获取信息。问题是,语法要求api调用应如下所示: <domain>/api/v1/Business.Country /api/v1/Business.Country 或者 <domain>/api/v1/Consumer.Country/us /api/v1/Consumer.Country/us 或 /api/v1/Consumer.Count

我的任务是制作一个RESTful api,非常简单,只提供几个表。例如,您应该能够按企业或消费者查找国家,或者按国家或州获取信息。问题是,语法要求api调用应如下所示:

<domain>/api/v1/Business.Country
/api/v1/Business.Country
或者

<domain>/api/v1/Consumer.Country/us
/api/v1/Consumer.Country/us

/api/v1/Consumer.Country/us/State

有了那个点,这可能吗?这是在LAMP平台上,所以我想可以通过某种奇特的重写来完成,但我想知道对于api的未来扩展来说,这有多灵活。

是的,在URI中有点是非常可能的(也是有效的)。您可以编写一些基于.htaccess的mod_重写规则来适当地路由这些请求

重写规则示例: 通过
httpd.conf
启用mod_rewrite和.htaccess,然后将此代码放入
文档根目录下的
.htaccess

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

# to handle cases like <domain>/api/v1/Business.Country/us
RewriteRule ^api/v1/Business\.[^/]+/(.*?)/?$ /business?country=$1 [L,QSA,NC]

# to handle cases like <domain>/api/v1/Consumer.Country/us
RewriteRule ^api/v1/Consumer\.[^/]+/(.*?)/?$ /consumer?country=$1 [L,QSA,NC]
Options+FollowSymLinks-多视图
#打开mod_rewrite
重新启动发动机
重写基/
#处理/api/v1/Business.Country/us等案例
重写规则^api/v1/Business\.[^/]+/(.*?//$/Business?国家=$1[L,QSA,NC]
#处理/api/v1/Consumer.Country/us等案例
重写规则^api/v1/Consumer\.[^/]+/(.*?/?Consumer?country=$1[L,QSA,NC]
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

# to handle cases like <domain>/api/v1/Business.Country/us
RewriteRule ^api/v1/Business\.[^/]+/(.*?)/?$ /business?country=$1 [L,QSA,NC]

# to handle cases like <domain>/api/v1/Consumer.Country/us
RewriteRule ^api/v1/Consumer\.[^/]+/(.*?)/?$ /consumer?country=$1 [L,QSA,NC]