0

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

http://localhost/public/controllername

位于localhost/public

C:\wamp\www\public\

其中包含一个 index.php

4

2 回答 2

1

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

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

快速示例:

.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.

当然,这只是一个快速粗略的示例,但应该让您了解如何执行此操作。

于 2012-04-10T12:14:23.087 回答
-1

它可以解析 $_SERVER['REQUEST_URI']

于 2012-04-10T12:12:01.470 回答