[英]vanity profile urls in php mvc not working
我在一个社交网站上创建了自己的PHP mvc,但是在URL重写时遇到了问题。 我的mvc以这种方式工作。
如果这是域www.example.com/manage/posts/11111 ,则manage是类, post是该类中的方法,而1111是参数。
问题是我无法创建虚荣个人资料网址,因为它们无法正常工作。 我希望每个用户都有虚荣个人资料网址,即www.example.com/username,但这将搜索名为username的类。
请告诉我如何
a)我可以在不添加任何内容(例如www.example.com/users/username)的情况下获得虚荣个人资料网址(例如www.example.com/username) 。
我知道还有其他PHP MVC,但我只想使用自己的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();
**注意:**这只是路由器使用的基本表示
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.