php mvc中的虚荣配置文件网址无法正常工作

时间:2015-04-19 18:42:17

标签: php .htaccess vanity-url

我正在建立一个社交网站,我已经创建了自己的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>

2 个答案:

答案 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 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();

**注意:**这只是路由器使用的基本表示