У меня установлен codeigniter в папке root / igniter.
под root / igniter, у меня есть следующий файл .htaccess:
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/system.*
RewriteRule ^(.*)$ index.php?/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?/$1 [L]
Страницы открываются так, как я ожидал, без использования index.php.
Итак, моя домашняя страница находится на http://example.com/igniter
, а также открывается моя регистрационная страница на http://example.com/igniter/registration
.
Однако в моей регистрационной форме кнопка отправки, которая обрабатывается контроллером CI, перенаправляет на
http://example.com/igniter/index.php/registration
Я убедился, что мой config.php в папке apps / config имеет
$config['index_page'] = "";
Вот так выглядит мой контроллер регистрации:
public function index()
{
$this->load->helper(array('form', 'url'));
$this->load->model('Registration_Model');
$this->load->library('form_validation');
$this->form_validation->set_error_delimiters('<div class="error">', '</div>');
$this->form_validation->set_rules('username', 'Username', 'trim|required|min_length[5]|max_length[12]|callback_username_check|xss_clean');
$this->form_validation->set_rules('password', 'Password', 'trim|required|min_length[6]|max_length[12]|matches[passconf]');
$this->form_validation->set_rules('passconf', 'Password Confirmation', 'trim|required');
$this->form_validation->set_rules('email', 'Email', 'trim|required|valid_email|callback_email_check');
if ($this->form_validation->run() == FALSE)
{
$this->load->view('registration');
}
else
{
//input data into database here
$username = strtolower($_POST['username']);
$password = md5($_POST['password']);
$email = strtolower($_POST['email']);
$data = array
(
'username' => $username,
'password' => $password,
'email' => $email
);
$this->Registration_Model->addUser($data);
$this->load->view('registrationsuccess');
}
}
Насколько я вижу, я не прошу явно перенаправить контроллер на index.php / registration.