漂亮的URL和动态Vars

时间:2012-07-09 19:27:38

标签: php mod-rewrite

我正处于构建我正在构建的PHP框架的路由系统的概述阶段。

我需要使用mod重写,对于漂亮的网址。我得到了那部分。 但是说我想用网址制作一个页面,如:

www.domain.com/news/10(新闻-ID)/

我希望这个动态变量(This news id)在重写时有一个名字。

我想要实现的是;

框架路由到新闻控制器,并将10作为参数传递给: $ args = array('news_id'=> 10)

1 个答案:

答案 0 :(得分:1)

您可以使用$_SERVER super-global来检查请求的URI。在您的示例中,$_SERVER['REQUEST_URI']将设置为:

/news/10/

然后,您可以从该字符串中获取所请求的新闻ID。

<强>更新

// Use substr to ignore first forward slash
$request = explode('/', substr($_SERVER['REQUEST_URI'], 1)); 
$count = count($request);

// At this point, $request[0] should == 'news'
if($count > 1 && intval($request[1])) {
    // The second part of the request is an integer that is not 0
} else {
    if( $count == 1) {
        // This is a request for '/news'

    // The second part of the request is either not an integer or is 0
    } else if($request[1] == 'latest') {
        // Show latest news
    } else if($request[1] == 'oldest') {
        // Show oldest news
    } else if($request[1] == 'most-read') {
        // Show most read news
    }
}

请参阅$_SERVER的{​​{3}}