我将服务器的 apache 配置为将每个请求重定向到 index.php,这样我就可以使用以下网址:
http://www.website.com/about/us
现在我需要解析 url 以确定每个路由是否存在以及对它的期望,所以我可以设置一个数据库表来保存路由,这样我的客户就可以按照他们喜欢的方式编辑他们的路由。问题是,到目前为止我无法进行解析。
这是我的代码:
$uri = 'about/us';
$regex = '(page(/<action>))';
if ( ! preg_match($regex, $uri, $matches)) {
echo 'the route doesn\'t match';
exit();
}
它总是显示该回显消息。我究竟做错了什么?
编辑 :
我需要正则表达式的原因如下。想象一下,我有一个 url 段,例如:
/user/yoda
此处的正则表达式可用于将第一个参数解析为操作或页面,将第二个参数解析为仅允许特定字符集的键,就像我希望在这种情况下,第二个参数仅匹配“_-azAZ09”,类似这样的东西。换句话说,我会将这组正则表达式与 uri 进行比较,以确定它们中的任何一个是否与 uri 匹配,并确定从那以后要采取的行动。使用explode 函数将使我稍后在代码中评估uri 段,这是我想避免的。如果 uri 不匹配,立即将页面转发到 404 页面并中断操作。不知道我有没有说清楚..