Php 有没有办法重写一个url,在querystring中转换父母之间的内容?

Php 有没有办法重写一个url,在querystring中转换父母之间的内容?,php,apache,.htaccess,mod-rewrite,query-string,Php,Apache,.htaccess,Mod Rewrite,Query String,我正在寻找一个.htaccess代码,可以像这样转换url http://www.mywebsite.com/apis/endpoints/myfunction(1234,ABCDEFG,...,4344) 进入 我试过使用: RewriteRule ^([^-]+)/(.+)/?$ index.php?index.php=$1&argument=$2 [L,QSA] 但我不知道如何处理一些灵活的参数。看起来我是被迫用给定数量的参数来做的。 仅供参考:需要为我的网站用户提供更易于使用

我正在寻找一个.htaccess代码,可以像这样转换url

http://www.mywebsite.com/apis/endpoints/myfunction(1234,ABCDEFG,...,4344)
进入

我试过使用:

RewriteRule ^([^-]+)/(.+)/?$ index.php?index.php=$1&argument=$2 [L,QSA]
但我不知道如何处理一些灵活的参数。看起来我是被迫用给定数量的参数来做的。 仅供参考:需要为我的网站用户提供更易于使用的一些函数(API)。 有线索吗

另外,正如arkascha指出的,这不是一个标准的RESTAPI,我担心我的东西会让你厌烦,但是如果你问我,让我解释一下。事实上,它不是一个RESTAPI。并非所有API都必须是RESTful的。正如你所知,每个人都有可能制定自己的计划。表示法f(x,y,z)是每个从事数学工作的人都非常熟悉的,对他们来说,它比/f/x/y/z更容易理解。我的用户是数学用户,我编写的API旨在提供非常具体和复杂的东西,采用了与信息API相同的功能,但在本例中,我只想让他们更熟悉、更容易理解。例如: 如果我询问调用以下URI会发生什么,每个人都会理解:

,您不会对结果为5而感到惊讶;-) 但如果我写: 对于那些忽略RESTAPI的人来说,结果可能不是那么明显。
这是这个问题的唯一目的。感谢您给我解释的机会。

最后,通过在包含index.php脚本的文件夹中的.htaccess中添加以下内容,我能够理解这些内容(正在处理Abracadver建议):

RewriteRule ^(.*?)/?$ index.php?&f=$1 [QSA,L]
然后,我将PHP中的代码写到index.PHP中,以获得我想要的行为。
在PHP文件中,我解析了从superglobal$\u GET检索到的字符串“myfunction(1234,ABCDEFG,…,4344)”。我从$\u GET中删除了“f”元素,并用函数参数1234、ABCDEFG、…、4344填充它,因为它们是通过查询字符串发送的。这样,我就可以调用脚本myfunction,就像在规范GET中使用参数调用它一样。

最后,我可以通过将以下内容添加到包含我的index.php脚本的文件夹中的.htaccess中来完成这项工作(处理Abracadver建议):

RewriteRule ^(.*?)/?$ index.php?&f=$1 [QSA,L]
然后,我将PHP中的代码写到index.PHP中,以获得我想要的行为。
在PHP文件中,我解析了从superglobal$\u GET检索到的字符串“myfunction(1234,ABCDEFG,…,4344)”。我从$\u GET中删除了“f”元素,并用函数参数1234、ABCDEFG、…、4344填充它,因为它们是通过查询字符串发送的。这样,我就可以调用脚本myfunction,就像在规范GET中使用参数调用它一样。

我只需要将它重写为PHP中的
?f=myfunction&a=1234,ABCDEFG,4344
然后
分解(',',$u GET['a'))
。更简单。类似于
^([^(]+)\([^)]+)$index.php?f=$1&a=$2
myfunction只是一个文本持有者。我不能在一个巨大的.htaccess文件中编写所有可以调用的函数,这就是为什么我需要以友好的方式执行它。换句话说:必须重新映射到,但也必须使用相同的.htaccess重新映射到。你看到
myfunction
了吗在正则表达式中?第一个注释是一个示例,显示了格式以及如何在PHP中分解格式。什么样的API使用了如此奇怪的URL方案?严格来说,这并不是无效的,但很明显这会导致问题。通常REST API使用类似于
/API/endpoints/myfunction/1234/ABCDEFG/../4344
的方案。我只想重写一下将其写入PHP中的
?f=myfunction&a=1234,ABCDEFG,4344
,然后
explode(',',$\u GET['a'])
。更简单。类似于
^([^(]+)\([^)]+)$index.php?f=$1&a=$2
myfunction只是一个文本持有者。我不能在一个巨大的.htaccess文件中编写所有可以调用的函数,这就是为什么我需要以友好的方式执行它。换句话说:必须重新映射到,但也必须使用相同的.htaccess重新映射到。你看到
myfunction
了吗在正则表达式中?第一个注释是一个示例,显示了格式以及如何在PHP中分解格式。什么样的API使用了如此奇怪的URL方案?严格来说,这不是无效的,但很明显这会导致问题。通常REST API使用类似于
/API/endpoints/myfunction/1234/ABCDEFG/../4344
的方案。。。