如何通过MVC中的URL访问控制器

时间:2012-04-10 12:08:22

标签: php model-view-controller

我还没有找到一个非常简单的MVC框架。框架如何通过URL访问控制器成为可能?我认为它与QUERY_STRING有关,但它不是假设有?吗?

http://localhost/public/controllername

localhost/public位于:

C:\wamp\www\public\

包含index.php

2 个答案:

答案 0 :(得分:1)

通常,这是通过使用.htaccess重写(Apache mod_rewrite)完成的:

  1. 使用.htaccess重写将每个不是静态文件的查询定向到主入口点,例如index.php,假设您使用PHP作为服务器端语言。
  2. 然后从index.php中解析URI并在应用程序中建立一些路由。
  3. 简单示例:

    .htaccess档案:

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} -s [OR]
    RewriteCond %{REQUEST_FILENAME} -l [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^.*$ - [NC,L]
    RewriteRule ^.*$ index.php [NC,L]
    

    index.php档案:

    $uri = $_SERVER['REQUEST_URI'];
    $parts = explode('/', $uri);
    // assuming you want /controller/action/* mapping
    $controller = 'index'; // default
    $action = 'index'; // default
    if (isset($parts[0])) $controller = $parts[0];
    if (isset($parts[1])) $action = $parts[1];
    // now, you'd try to establish some logic to test wether this controller/action
    // actually exists, and load it. I'll leave this up to you.
    

    当然,这只是一个快速而粗略的例子,但应该让你知道如何做到这一点。

答案 1 :(得分:-1)

解析$ _SERVER [' REQUEST_URI']