使用路由设置从URL中删除控制器名称后,为什么会将我重定向到具有控制器名称的URL

时间:2015-08-21 05:42:25

标签: php codeigniter

使用路由设置从URL中删除控制器名称后,为什么会将我重定向到具有控制器名称

的URL
    <form method="POST" action="<?php echo site_url('user/dashboard');?>">
            <table border="0" cellpadding="0" cellspacing="0">
            <tr>
                <th>Username</th>
                <td><input type="text"  class="login-inp" /></td>
            </tr>
            <tr>
                <th>Password</th>
                <td><input type="password" value="************"  onfocus="this.value=''" class="login-inp" /></td>
            </tr>
            <tr>
                <th></th>
                <td valign="top"><input type="checkbox" class="checkbox-size" id="login-check" /><label for="login-check">Remember me</label></td>
            </tr>
            <tr>
                <th></th>
                <td><input type="submit" class="submit-login"  /></td>
            </tr>
            </table>
    </form>

这是我的路线设定

$route['default_controller'] = 'user';
$route['(:any)'] = "user/$1";
$route['(:any)/(:any)'] = "user/$1/$1";
$route['(:any)/(:any)/(:any)'] = "user/$1/$1/$1";

当我点击提交按钮时,它会将我重定向到此网址

我不希望控制器名称是URL

http://localhost/grant/user/dashboard

我想要这样

http://localhost/grant/dashboard

我认为路线设置很好,.htaccess文件可能存在问题,我们将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:0)

问题出在route setting。您需要使用/编辑.htaccess文件。

改变
$route['(:any)'] = "user/$1";
action="<?php echo site_url('user/dashboard');?>

$route['dashboard'] = "user/$1";
action="<?php echo site_url('dashboard');?>

注意

在尝试上述代码之前,请注释/禁用以下代码。

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