Php 代码点火器-卡在线路上

Php 代码点火器-卡在线路上,php,codeigniter,Php,Codeigniter,我正在试用CodeIgniter 2.1.4。我已经有了一个显示静态页面的控制器,它是我使用CodeIgnitor文档中的教程构建的。我后来设置了如下路线: // <http://localhost/> refers to <http://localhost/pages/view/> $route['default_controller'] = "pages/view"; // <http://localhost/somepage/> refers to

我正在试用CodeIgniter 2.1.4。我已经有了一个显示静态页面的控制器,它是我使用CodeIgnitor文档中的教程构建的。我后来设置了如下路线:

// <http://localhost/> refers to <http://localhost/pages/view/>
   $route['default_controller'] = "pages/view";
// <http://localhost/somepage/> refers to <http://localhost/pages/view/somepage/>
   $route['(:any)'] = "pages/view/$1";
// .htaccess is already setup to rewrite the url without index.php
//指的是
$route['default_controller']=“页面/视图”;
//指
$route['(:any)]=“页面/视图/$1”;
//.htaccess已设置为在不使用index.php的情况下重写url
现在,我对PHP没有太多经验,URL重写和MVC架构的概念对我来说是相当新的

比如说,有一些页面叫做•主页、•关于、•管理员和•联系人

对于页面•主页、•关于和•联系人,页面控制器正常工作

但是对于•Admin页面,我希望有一个单独的控制器来确定用户是否登录,以及他是否拥有管理员权限等。如果他还没有登录,我应该加载登录视图,而不是管理视图

页面控制器具有相当简单的逻辑。它检查参数中附加了
.php
并以views目录作为前缀的字符串是否作为文件存在。如果不显示_404(),则加载视图页眉模板,然后加载页面,然后加载视图页脚模板。我敢肯定,大多数使用过CodeIgniter的人肯定都见过类似的静态页面逻辑

我可以在我的Admin视图中执行
重定向('login')
,但这似乎不起作用。如果我为管理员创建一个单独的控制器,我将如何访问它,同时根据路由,每个URL都被定向到
页面/视图
控制器(上述代码中的第4行)

正如我已经说过的,我对这方面还相当陌生。可能是我犯了个愚蠢的错误。或者我的整个MVC结构可能构建不当。我如何克服这一点,开始担心身份验证的问题?有人能提供建议吗

$route['default_controller'] = "pages/view";
$route['admin/(:any)'] = "admin/$1"; //(admin controller) with "any" method 
$route['(:any)'] = "pages/view/$1";
localhost/poject/admin/edit
作为示例

您遇到的问题很简单,您通过该
(:any)
覆盖了所有控制器。这没有错,但您需要手动将您想要路由的每个控制器分配为正常控制器,正如我在上面发布的那样

请注意,路线取决于订单,如果使用一条(第一条),则忽略第二条路线。“路由将按定义的顺序运行。较高的路由将始终优先于较低的路由。”

有关身份验证,请参见此

我宁愿使用
\u remap()
并接管我的路由,而不是使用此路由
$route['(:any)]=“pages/view/$1”在routes.php中


我正要回答我自己的问题。我想最好的办法就是你说的。我现在有一个
$route
分配给每一页;)。如果是关于、联系人或主页,则路由为
pages/view/$1
,但如果是admin,则路由为
admin/index/$1
。但这可能不是最有效的方法。我将按照您提到的第一条路线first和
\u remap()
策略使用一些不同的逻辑: