如何做MVC表单url格式化?

dqh*_*cks 3 php forms rest model-view-controller url-routing

我正在使用PHP.我想从头开始创建一个MVC设置,以了解有关MVC如何工作的更多信息.我想使用带有斜杠的干净网址作为参数的分隔符.在GET方法表单中,人们如何做到这一点?或者人们一起避免GET方法形式?

截至目前,我可以想象的方式是:

  1. 不要使用GET方法表单(尽管这使得用户在某些情况下更难以书签/链接).
  2. 使用AJAX而不是表单提交(虽然你为SEO和JS禁用者做了什么?).
  3. 让页面使用post方法提交给自己,然后将post vars改为url,然后使用header重新注入该url(似乎浪费了资源).

任何建议或建议阅读欢迎.

小智 6

您可以像这样使用.htaccess文件
<IfModule mod_rewrite.c>
      RewriteEngine On
      RewriteCond%{REQUEST_FILENAME}!-d
      RewriteCond%{REQUEST_FILENAME}!-f
      RewriteRule ^(.*)$ index.php?url = $ 1 [QSA, L]
</ IfModule>

so ...如果url是
http://example.com/controller/action/param1/
你可以路径控制器和动作,index.php会收到var url [string]
而你可以拆分它们来加载控制器...就像

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)