Я делаю сайт социальной сети, где я создал свой собственный PHP mvc, но у меня проблемы с переписыванием URL. Мой MVC работает таким образом.
Если это домен www.example.com/manage/posts/11111 , управлять это класс, сообщение это метод в этом классе & 1111 это параметр.
Проблема в том, что я не могу создать URL профиля тщеславия, так как они не будут работать. Я хочу, чтобы у каждого пользователя был URL профиля тщеславия, т.е. www.example.com/username но это будет искать класс с именем имя пользователя.
Пожалуйста, посоветуйте мне, как
а) Я могу достичь URL профиля тщеславия, таких как www.example.com/username без добавления чего-либо, такого как www.example.com/users/username.
Я знаю, что есть другие PHP MVC, но я просто хочу использовать свой собственный
Это мой текущий код htaccess ::
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/?$ index.php?ref_url=$1 [NC,L,QSA]
</IfModule>
Я не знаю, почему все люди пытаются создать свои собственные фреймворки, так много действительно хороших фреймворков, которые смотрят на безопасность и многое другое. Но хорошо, я думаю, что твоя проблема — твое правило переписывания.
RewriteRule ^(.*)$ index.php?ref_url=$1 [NC,L,QSA]
Обычно вы должны переписать все свои данные в данный файл, проанализировать URL и вызвать нужный вам контроллер. Для лучшего понимания взгляните на компонент Symfony2 Routing.
http://symfony.com/doc/current/components/routing/introduction.html
Сначала вы должны создать маршрутизатор для маршрутизации ваших URL на контроллеры / классы. Я предпочитаю klein router
или же FastRoute
за его простоту.
После установки роутера делайте что хотите:
(Example)
$router=new Router;
$router->addroute("/[:username]",
function(){
//Bring UserAccount Details from DB using [:username]
}
);
$router->addroute("/manage/posts/[:id]",
function(){
//Get Post details using [:id]
}
$router->dispatch();
** NB: ** Это только базовое представление об использовании маршрутизатора