繁体   English   中英

PHP MVC中的虚荣个人资料网址无法正常工作

[英]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 routerFastRoute因为它很简单。

放置路由器后,您要做什么:

(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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM