我还没有找到一个非常简单的 MVC 框架。框架如何使仅通过 URL 访问控制器成为可能?我认为这与该有关,QUERY_STRING
但不是应该有一个?
吗?
http://localhost/public/controllername
位于localhost/public
:
C:\wamp\www\public\
其中包含一个 index.php
我还没有找到一个非常简单的 MVC 框架。框架如何使仅通过 URL 访问控制器成为可能?我认为这与该有关,QUERY_STRING
但不是应该有一个?
吗?
http://localhost/public/controllername
位于localhost/public
:
C:\wamp\www\public\
其中包含一个 index.php
通常,这是通过使用.htaccess
重写(Apache mod_rewrite)来完成的:
.htaccess
重写将不是静态文件的每个查询定向到您的主入口点,例如index.php
,假设您使用 PHP 作为您的服务器端语言。index.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.
当然,这只是一个快速粗略的示例,但应该让您了解如何执行此操作。
它可以解析 $_SERVER['REQUEST_URI']