这可能是以前有人问过的。然而,经过相当一段时间的搜索,我还是搞不明白这一点。
我正在为我的php站点创建一个小的路由引擎。我希望能使它尽可能地充满活力和灵活性。现在,我有所有的URL转到我的路由器文件,在内部,它将解析正确页面的URL。
我希望能够自动将所有GET参数转换为某种预定义格式。我想知道这是否可能:
出发地:example.com/page.php?param=val m=val.
至:
example.com/page/param/val/param/val...关键是我不想硬编码匹配。理想情况下,我不需要知道有多少辆车,或者他们是什么,而是自动转换成预定义的格式,如上面所示。然后将URI传递到我的路由器,然后路由器将根据需要解析它。此外,该页的路径可能是几个子目录,例如
example.com/account/register.php?action=something
example.com/account/register/action/somethingTLDR
* mod_rewrite能否自动将所有GET参数转换为某种预定义的格式,如page/param/val/param/val page/param:val/param:val?*
更新
为了澄清我的问题/我理解如何使用正则表达式,以及哪些不匹配url的表达式。我的问题是,我是否可以设置一些规则,将查询字符串转换为预定义的格式,而无需事先知道有多少参数或它们用于什么页面。
发布于 2013-07-21 20:03:09
除了使用mod_rewrite之外,您还可以循环遍历index.php中的$_GET数组,并执行如下操作:
$url = '';
foreach($_GET as $key => $value) {
$url .= $key . '/' . $value . '/';
}
header ("Location: http://www.mysite.com/" . $url);发布于 2013-07-21 19:35:54
有关如何使用正则表达式的灵感,请参见类似的问题:
https://stackoverflow.com/questions/17775991
复制相似问题