Я пытаюсь создать очень простую инфраструктуру MVC, чтобы лучше понять шаблон.
У меня проблемы с пониманием части маршрутизации URL.До сих пор я понял, что URL содержит 3 основных элемента информации в этом формате: www.site.com/controller/method/querystring
Итак, учитывая следующий URL:
www.site.com/user/delete/john
'user' is the controller
'delete' is the method of said controller
'john' is the query string
В моем фреймворке он у меня есть, поэтому, если в URL не указан контроллер, по умолчанию используется «index».Если метод, если он не указан в URL, по умолчанию используется «show» (который просто выводит html).
таким образом, я могу перейти на www.site.com, и так как у него нет контроллераили метод в URL, контроллер становится «index», а метод «show», таким образом, просто загружая представление индекса.
Но что, если я не хочу предоставлять метод в URL, а просто www?.site.com / controller / querystring примерно так: www.site.com/user/john
В идеале это может загрузить профиль для Джона.Но фреймворк думает, что «john» в URL-адресе - это метод для вызова, а не строка запроса.
Что является стандартным, практическим способом различения двух?
ps:
У меня есть это в моем .htaccess
RewriteRule ^(.*)$ index.php?$1 [L,QSA]
отображение $ _SERVER ['QUERY_STRING'] в http://site/profile/john дает 'профиль /джон '/