2

我正在尝试构建一个类似 mvc 的应用程序,但我无法找出我需要的正确 .htaccess。

我想要类似的东西:

RewriteRule ^(.*)/(.*)/(.*)$ $1.php?action=$2&n=$3 [L]

所以我可以访问包含正确控制器和两个从 url 获取变量的文件。上面的代码不起作用,我已经在这个地方呆了 2 天了,我在任何地方都找不到我需要的东西。发生的情况是 url 需要 3 个变量才能工作,这不是我想要的. 建议?

4

2 回答 2

3

大多数框架使用Front-Controller而不是mod_rewrite. 该控制器相应地拆分 URL 和路由

虽然不是唯一的解决方案,但它更灵活。考虑您何时拥有 URLplugin/controller/view/idcontroller/view/param1/param2.

如果您想采用 Front-Controller 架构,我建议您使用FallbackResource来保持您的htaccess文件修剪。

FallbackResource /front-controller.php

从那里开始,用parse_url().

于 2012-07-17T23:25:19.837 回答
2

用这个:

RewriteRule ^([^\./]*)$ index.php?route=$1 [L,NC,QSA]

然后

$route = explode('/', $_GET['route']);
$id = array_pop();
$controller = array_shift($route);
$method = implode('_', $route);

$controller = new $controller;
$controller->$method();
于 2012-07-18T00:40:08.000 回答