codeigniter重定向函数放? base_url和controller / function之间

时间:2013-03-22 11:35:54

标签: php codeigniter url redirect

我创建了一个登录脚本来访问另一个控制器,以便其他人看不到。

现在我的控制器中有一个重定向功能,可以重定向到另一个控制器。

现在当我重定向它工作正常,但它放了一个?我的base_url和控制器之间是这样的:

http://kees.een-site-bouwen.nl/?/member/index

我该如何解决?

我的家庭控制器功能:

public function process(){
    // Load the model
    $this->load->model('login_model');
    // Validate the user can login
    $result = $this->login_model->validate();
    // Now we verify the result
    if(! $result){
        // If user did not validate, then show them login page again
        $msg = '<font color=red>Invalid username and/or password.</font><br />';
        $this->index($msg);
    }else{
        // If user did validate, 
        // Send them to members area
        redirect('/member/index');
    }        
}  

是否与我的.htaccess文件有关?

看起来像这样:

<IfModule mod_rewrite.c>
RewriteEngine On
#Removes access to the system folder by users.
#Additionally this will allow you to create a System.php controller,
#previously this would not have been possible.
#'system' can be replaced if you have renamed your system folder.
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ index.php?/$1 [L]

#When your application folder isn't in the system folder
#This snippet prevents user access to the application folder
#Submitted by: Fabdrol
#Rename 'application' to your applications folder name.
RewriteCond %{REQUEST_URI} ^LoginTut.*
RewriteRule ^(.*)$ index.php?/$1 [L]

#Checks to see if the user is attempting to access a valid file,
#such as an image or css document, if this isn't true it sends the
#request to index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1 [L]
</IfModule>
<IfModule !mod_rewrite.c>
 ErrorDocument 404 index.php
</IfModule>

3 个答案:

答案 0 :(得分:0)

使用redirect('member/index')代替redirect('/member/index');

答案 1 :(得分:0)

将您的htaccess更改为:

<IfModule mod_rewrite.c>
RewriteEngine On

RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ index.php/$1 [L]

RewriteCond %{REQUEST_URI} ^LoginTut.*
RewriteRule ^(.*)$ index.php/$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

以便将网址解析为index.php/controller而不是index.php?/controller

答案 2 :(得分:0)

我通过禁用query_strings解决了这个问题:

自:

$config['enable_query_strings'] = TRUE;

要:

$config['enable_query_strings'] = FALSE;

在我的Config.php文件中。