我正在建立一个社交网站,我已经创建了自己的PHP mvc,但我在网址重写方面遇到了问题。我的mvc以这种方式工作。
如果这是域 www.example.com/manage/posts/11111 ,则管理是类,帖子是方法在那个班级& 1111 是一个参数。
问题在于我无法创建虚荣配置文件网址,因为它们无法正常工作。我希望每个用户都有虚荣配置文件网址,即 www.example.com/username ,但这会搜索名为用户名的课程。
请告诉我如何
a)我可以在不添加 www.example.com/users/username 之类的内容的情况下获得虚拟个人资料网址,例如 www.example.com/username 。< / p>
我知道还有其他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>
答案 0 :(得分:0)
我不知道为什么所有人都试图建立自己的框架,有很多非常好的框架可以看到安全性等等。但好吧我认为你的问题是你的重写规则。
RewriteRule ^(.*)$ index.php?ref_url=$1 [NC,L,QSA]
通常,您应该将所有输入重写为给定文件并解析URL并调用所需的控制器。为了更好地理解,请查看Symfony2路由组件。
http://symfony.com/doc/current/components/routing/introduction.html
答案 1 :(得分:0)
您应该首先创建一个路由器来将您的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();
**注意:**这只是路由器使用的基本表示