Tor*_*rez 5 model-view-controller mod-rewrite
我不确定如何对模块化MVC结构进行mod-rewrite.我想要发生的是URL捕获:
http://domainname.com/index.php?model={model}&view={view}¶meters={parameters}
注意:参数将按特定顺序并由管道分隔(除非有更好的方法):parameters = param1 | param2 | param3
http://domainname.com/{model}/{view}/{parameters}
例:
http://domainname.com/faq/edit/13
另一个例子:
http://domainname.com/faq/index/{sort}/{page}/{search}
http://domainname.com/faq/index/asc/3/How+to
基本上模型和视图之后的任何东西都可以作为参数; 尽可能多的.对于每个视图,我将了解区域允许的可能参数以及顺序.
先感谢您.
-
使用下面的代码就是我拥有的:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/(.*)/(.*) index.php?model=$1&view=$2¶meters=$3 [L,NS]
URL:http://localhost:8888/testing/faq/index/asc/5/How+to
PHP $ _GET变量:
Array
(
[model] => faq/index/asc
[view] => 5
[parameters] => How to
)
应该:
Array
(
[model] => faq
[view] => index
[parameters] => asc/5/How to
)
请帮忙
ins*_* me 11
您可以使用PHP函数来执行此操作.很快,没有默认值或错误处理:
list( $controller, $function, $params ) = explode( '/', $uri, 3 );
$params = explode( '/', $uri );
Run Code Online (Sandbox Code Playgroud)
在.htaccess中,将任何不存在的查询重定向到PHP查询处理文件:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ mvc.php [L,NS]
Run Code Online (Sandbox Code Playgroud)
请注意过滤您的输入,不要包含任何文件等.
| 归档时间: |
|
| 查看次数: |
6140 次 |
| 最近记录: |