Mod-Rewrite还是PHP路由器? [英] Mod-Rewrite or PHP router?

查看:98
本文介绍了Mod-Rewrite还是PHP路由器?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在讨论使用以下两个选项之一路由请求:

I am debating routing my requests with one of the two options:

选项1:使用Mod-Rewrite和漏斗编写的简单捕获路由$_GET到index.php的路由以进行加载...

Option 1: simple capture route with Mod-Rewrite and funnel written $_GET route to index.php for loading...

#default routing
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule    ^blog/([0-9]+)?$    index.php?rt=blog&params=$1    [L,QSA]
// ..more custom routes, and then a default route
RewriteRule    ^([A-Za-z]+)/([A-Za-z]+)/(.*)?$    index.php?rt=$1/$2&params=$3    [L,QSA]

选项2:只需将请求路由到Front Controller,然后创建一个PHP路由类来处理路由...

Option 2: simply route requests to Front Controller, and create a PHP routing class to handle the routing...

#default routing
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?rt=$1 [L,QSA]

/* --- on front controller, process $_GET['rt'] --- */

一天结束时,它将运行得更快,更容易保护并且更容易维护吗?

at the end of the day, which will run faster, be easier to secure, and be easier to maintain?

还有其他想法吗?

注意:我没有运行已知的框架.我正在构建自己的MVC模式来学习它.

NOTE: I am not running a known framework. I am building my own MVC pattern to learn it.

推荐答案

通常在MVC框架中,此类事情通常最好由前端控制器(命名为index.php等)处理.您可以使用mod_rewrite从所有URL中隐藏index.php,以便您的用户看到漂亮的整洁路径.

Usually in MVC frameworks, this sort of thing is usually best handled by a front controller (named index.php or the like). You use mod_rewrite to then hide index.php from all of the URLs so your users see nice clean paths.

在PHP中比在Apache的rewrite指令中更容易处理. PHP更加灵活,更易于编写/理解.我不确定我是否曾经见过mod_rewrite用作任何Web框架的唯一路由引擎.

It's also way easier to handle in PHP than in Apache's rewrite directives. PHP is much more flexible and easier to write/understand. I'm not sure I've ever seen mod_rewrite used as the sole routing engine for any web framework out there, now that I think of it.

您的第二段代码是执行重写指令的方式.

Your second snip of code is the way to go for your rewrite directives.

这篇关于Mod-Rewrite还是PHP路由器?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆