我有我的服务器的配置Apache重定向每一个请求的index.php,这样我可以使用像URL:现在我需要解析URL以PHP与Apache - 解析URL的mod_rewrite
http://www.website.com/about/us
确定每条路线是否存在以及期望的路线,因此我可以设置数据库表以保存路线,因此我的客户可以按照他们的喜好编辑路线。事情是,我目前无法进行解析。
这里是我的代码:
$uri = 'about/us';
$regex = '(page(/<action>))';
if (! preg_match($regex, $uri, $matches)) {
echo 'the route doesn\'t match';
exit();
}
它总是会出现在该回波消息。我究竟做错了什么?
编辑:
之所以我需要的正则表达式如下。想象一下,我有一个网址段,如:
/user/yoda
这里的正则表达式将是有益的解析第一个参数作为一个动作或网页,第二作为重点,将只允许一组特定的字符的,就像如果我希望在这种情况下,第二个参数只能匹配“_-azAZ09”,就像这样。换句话说,为了确定它们中的任何一个是否与uri相匹配,并且确定从该uri开始采取的动作,我将这组正则表达式与uri相比较。使用explode函数可以让我在后面的代码中评估uri段,我想避免这种情况。如果与uri不匹配,请立即将该页面转发到404页面并中断操作。不知道我是否自己清楚..
如果情况总是很容易,但它不会。所以我真的需要使用正则表达式。 – yoda 2010-02-06 20:42:23
小心解释为什么? URL总是有“/”,这似乎是一个合适的解决方案。我看不出为什么手动拆分URL条目的正则表达式是必要的。这个问题是否缺少信息,也许? – LiraNuna 2010-02-06 20:45:43
+1正则表达式很贵! – sepehr 2010-02-06 20:56:07