我正在使用 PHP。我想从头开始创建一个 MVC 设置,以了解有关 MVC 工作原理的更多信息。我想使用带有斜杠的干净网址作为参数的分隔符。当涉及到 GET 方法表单时,人们是如何做到这一点的?或者人们会完全避免使用 GET 方法形式吗?
目前我能想到的方式是:
- 不要使用 GET 方法表单(尽管在某些情况下这会使用户更难添加书签/链接)。
- 使用 AJAX 而不是表单提交(尽管您对 SEO 和 JS 禁用程序做了什么?)。
- 让页面使用 post 方法提交给自己,然后将 post vars 改造成一个 url,然后使用 header 重新路由到该 url(似乎是浪费资源)。
欢迎提出任何建议或建议阅读。
最佳答案
你可以像这样使用.htaccess
文件
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>
所以...如果 url 是
http://example.com/controller/action/param1/
你可以路径 Controller 和 Action ,index.php 接收 var url [string]
你可以拆分它们来加载 Controller ......就像
$params = explode('/', $_GET['url']);
$controller = new $params[0];//load the controller
$controller->$params[1]($params[2]);//ejecute the method, and pass the param
关于php - 如何进行 MVC 表单 url 格式化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4627854/