【问题标题】:Subfolder routing not working子文件夹路由不起作用
【发布时间】:2013-01-11 13:38:03
【问题描述】:

我在路由文件时遇到问题。我需要访问new_account 子文件夹和其中的控制器...

结构如下:

controllers
---new_account
---------step1.php
---------step2.php
---accounts.php 
---pages.php

这是我位于application 之外的.htaccess 文件的内容

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L] 

这是我的routes.php

$route['default_controller'] = 'pages/show_page/home';
$route['pages/(:any)'] = 'pages/show_page/$1';
$route['accounts'] = 'accounts';
$route['new_account/(:any)'] = "new_account";
$route['(:any)'] = 'pages/show_page/$1';
$route['404_override'] = '';

我也用$config['uri_protocol'] = 'REQUEST_URI';

我的pages 控制器运行良好,即使是直接链接,例如<?php echo base_url(); ?>home 重定向到 ../pages/home.php

accounts.php 控制器调用 new_account/user_home.php,其中包含指南和指向实际表单的链接。链接是<?php base_url();>new_account/step1,由于$route['new_account/(:any)'] = "new_account";,它应该没有工作。

每当我点击指向new_account/step1 的链接时,我都会被重定向到主页。

我真的很想访问app_name/new_account/step1 和目录中的其他人...我是否错过了这些文件中的某些内容或一个不可或缺的步骤?

注意:

我还尝试通过在application/libraries 文件夹中插入MY_Router.php 来尝试this subfolder routing extension,但没有发生任何变化。然后我把它移到application/core,但我得到的只是一个服务器错误。

【问题讨论】:

    标签: php codeigniter


    【解决方案1】:

    在您的routes.php 中评论此行:

    $route['new_account/(:any)'] = "new_account";
    

    Codeigniter 默认路由应该适用于http://YOUR_SITE/new_account/step1,因为您在文件夹new_account 中有一个名为step1.php 的控制器文件。还要检查step1.php 中的控制器类的名称是否为Step1

    【讨论】:

    • 谢谢。我评论了$route['new_account/(:any)'] = "new_account";,当我转到site_name/new_account/step1 时,它重定向到一条404 消息。我使用了一个链接来访问step1。我也有像personal_info.php 这样的控制器,其类名为Personal_info。你怎么看?
    • 我又修改了你的routes.php,评论这一行:$route['(:any)'] = 'pages/show_page/$1';也再试一次。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-04
    • 2017-08-07
    • 1970-01-01
    • 2020-04-20
    相关资源
    最近更新 更多