Model view controller 简单MVC模块重写

Model view controller 简单MVC模块重写,model-view-controller,mod-rewrite,Model View Controller,Mod Rewrite,我不知道如何对模块化MVC结构进行修改。我想实现的是URL捕获: {model}&view={view}¶meters={parameters} 注:参数将按特定顺序排列,并由管道分隔(除非有更好的方法): 参数=参数1 |参数2 |参数3 {model}/{view}/{parameters} 例如: 另一个例子: {sort}/{page}/{search} 基本上,模型和视图之后的任何内容都可以是参数;需要多少就有多少。对于每个视图,我将知道该区域允许的可能参数以及顺序 先谢谢

我不知道如何对模块化MVC结构进行修改。我想实现的是URL捕获:

{model}&view={view}¶meters={parameters}


注:参数将按特定顺序排列,并由管道分隔(除非有更好的方法): 参数=参数1 |参数2 |参数3

{model}/{view}/{parameters}

例如:

另一个例子:

{sort}/{page}/{search}

基本上,模型和视图之后的任何内容都可以是参数;需要多少就有多少。对于每个视图,我将知道该区域允许的可能参数以及顺序

先谢谢你

--

使用下面的代码就是我所拥有的:

RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)/(.*)/(.*) index.php?model=$1&view=$2¶meters=$3 [L,NS] 重新启动发动机 重写cond%{REQUEST_FILENAME}-F 重写cond%{REQUEST_FILENAME}-D 重写规则^(.*)/(.*)/(.*)index.php?模型=$1,视图=$2,参数=$3[L,NS] URL:

PHP$\u获取变量:

Array ( [model] => faq/index/asc [view] => 5 [parameters] => How to ) 排列 ( [型号]=>常见问题解答/索引/asc [查看]=>5 [参数]=>如何 ) 应该是:

Array ( [model] => faq [view] => index [parameters] => asc/5/How to ) 排列 ( [型号]=>常见问题解答 [查看]=>索引 [参数]=>asc/5/如何 )
请帮助

您可以使用PHP函数来完成此操作。快速,无默认值或错误处理:

list( $controller, $function, $params ) = explode( '/', $uri, 3 );
$params = explode( '/', $uri );
在.htaccess中,将任何不存在的查询重定向到PHP查询处理文件:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ mvc.php [L,NS]

但要注意过滤输入,不要包含任何文件等。

您也可以像这样访问htaccess:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/(.*)/(.*) mvc.php?model=$1&view=$2&parameters=$3 [L,NS]

这只是另一种方式,尽管我个人更喜欢streetpc的方式。

嘿,谢谢你这么快回复我。我编辑了我的问题,以包括根据您提供的内容修改的测试代码。快到了,只是需要调整一下。谢谢,(*)是贪婪的(也就是说,它们尽可能地扩展)。在本例中,前两个必须使用(.*)。它为您提供重写规则^(.*?/(.*?/(.*?)$index.php?模型=$1&视图=$2&参数=$3[L,NS]