使用.htaccess删除路由的名称

时间:2014-10-29 22:59:50

标签: .htaccess codeigniter mod-rewrite

我已将默认控制器设置为登录页面。成功登录后,将重定向用户 to www.mydomain.com/home. Home是我的路线名称,我现在要做的就是删除它 回家.htaccess - 文件。

这甚至可能吗?

我目前的.htaccess看起来像这样:

DirectoryIndex index.php
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|public|images|css|js|robots\.txt)

RewriteRule ^(.*)$ index.php?/$1 [L]

2 个答案:

答案 0 :(得分:0)

尝试添加:

RewriteCond %{THE_REQUEST} \ /+home($|\ |\?)
RewriteRule ^ / [L,R]

RewriteRule ^$ index\.php?/home [L]

在您已有的规则之前。

答案 1 :(得分:0)

我不认为你可以在没有获得重定向循环的情况下从.htaccess那样做。所以这里有两个解决方案。

在过去的项目中,我使用了默认控制器(在你的情况下为Home),然后创建了一个会话检查库,如果用户没有登录,它将重定向到登录页面。这很简单检查用户登录时设置的$this->session->userdata('auth') == true,并且库方法调用是在默认控制器的构造函数中。默认控制器将只包含您正在寻找的基本网址。

OR

您可以查看another post by Justin Ethier

You can define a custom route in config/routes.php - for example:

$route['about'] = 'name_controller/about';

Then, http://example.com/about的上一个答案   转到http://example.com/name_controller/about

     

请参阅在URL中隐藏控制器的方法名称?在CI论坛中获取更多信息。