Apache ColdFusion/Mod_Rewrite/Taffy:带有查询字符串的友好URL

Apache ColdFusion/Mod_Rewrite/Taffy:带有查询字符串的友好URL,apache,mod-rewrite,coldfusion,railo,taffy,Apache,Mod Rewrite,Coldfusion,Railo,Taffy,我有点像阿帕奇新手——让我们先把它弄清楚!我正在尝试在我的railo实例上设置“taffy”,一个RESTAPI框架,但我一生都无法让这个重写工作正常进行。我在Coldfusion/IIS7中设置得很好,但我无法在apache中复制结果 基本上,框架依赖于获取如下请求: /api/index.cfm?端点=/resource 那很好,但显然不舒服。他们在“taffy”文档中说,如果没有任何额外的规则,您应该能够简单地调用“/api/index.cfm/resource”,但我从未做过这样的工作。

我有点像阿帕奇新手——让我们先把它弄清楚!我正在尝试在我的railo实例上设置“taffy”,一个RESTAPI框架,但我一生都无法让这个重写工作正常进行。我在Coldfusion/IIS7中设置得很好,但我无法在apache中复制结果

基本上,框架依赖于获取如下请求:

/api/index.cfm?端点=/resource

那很好,但显然不舒服。他们在“taffy”文档中说,如果没有任何额外的规则,您应该能够简单地调用“/api/index.cfm/resource”,但我从未做过这样的工作。无论如何,我希望您能够在URL栏中键入“/api/resource”,让它在不将URL更改回“/api/index.cfm?endpoint=/resource”的情况下正常工作

以下是我的重写规则:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule api/(.*)$ /api/index.cfm?endpoint=/$1 [QSA,L]
查看日志,这是将URL正确地重写为“/api/index.cfm?endpoint=/resource”。然后,它断开“?endpoint=/resource”,决定不喜欢它,并简单地重定向到“/api/index.cfm”。。。这没什么用

现在,据我所知,apache正在获取查询字符串并将其隐藏在cgi query_字符串变量中。Railo需要将“endpoint”变量从URL范围中取出,而不是从CGI范围中取出


我有没有办法完成我在这里要做的事情?顺便说一句,如果我像我所看到的那样添加R或R=301标记,我只会被放入一个无限重定向循环中,这也是我无法解释的。在这一点上,我几乎很高兴看到一个简单的老重定向,但我无法跳出循环。我在做什么

重写URL比重定向、RedirectMatch或R或R=301更好,因为重定向意味着从浏览器重新查询到apache服务器,所以至少要完成两个作业。如果重写成功,只需获取$u GET[“endpoint”]。