Как настроить файл .htaccess в подкаталогах?(Не удалось отправить форму) - PullRequest
0 голосов
/ 18 июня 2019

У меня есть приложение в подкаталоге:

>var
  >www
    >html
      >andy
      >fikri
        >ppg-portal (my app)
      >john

Форма входа загружается красиво, однако, когда я попытался войти с действительными именем пользователя и паролем, ничего не произошло.Он перенаправляется на контроллер входа в систему, но не перенаправляет на домашнюю страницу.

мой текущий контроллер:

//LOGIN AUTH
public function authentication(){
    $this->form_validation->set_rules('username', 'username', 'required');
    $this->form_validation->set_rules('password', 'password', 'required');
    $this->form_validation->set_error_delimiters('<div class="text-danger text-left m-t-xs m-b-md">','</div>');

    if ($this->form_validation->run() == FALSE) {
        $this->session->sess_destroy();
        $this->load->view('login/form_login');
    } else {
        $username = $this->input->post('username');
        $password = $this->input->post('password');

        if(strtolower($username) == 'maiimaii' && $password == APP_ADMIN) {
            $newlogin = array(
                'nip'       => $username,
                'nama'      => 'SUPER ADMIN Mode',
                'dept'      => 'SUPER ADMIN',                    
                'rank'      => 'SUPER ADMIN',                   
                'level'     => '9999999999',
                'foto'      => 'admin_ppg.jpg',
                'st_user'   => '0',
                'isLogin'   => TRUE);

            $this->session->set_userdata($newlogin);

            redirect("/app");
        } else {

            $cek = $this->MLogin->check_user($username, $password);

            if($cek->num_rows() > 0) {

                $userinfo = $this->MLogin->user_info($username);

                $newlogin = array(
                    'nip'       => $username,
                    'user_no'   => $userinfo->USER_NO,
                    'nama'      => $userinfo->USER_NAME,
                    'dept'      => $userinfo->DEPT_ID,
                    'dept_nm'   => $userinfo->DEPT_ABBR,
                    'rank'      => $userinfo->RANK_ID,
                    'level'     => $userinfo->USER_LEVEL,
                    'foto'      => $userinfo->USER_PHOTO,
                    'st_user'   => $userinfo->USER_TYPE,                        
                    'isLogin'   => true);
                $this->session->set_userdata($newlogin);

                redirect("/app");

            }else {

                $data = array('alert' => 'login_error', 'username' => $username);

                $this->load->view('login/form_login', $data);                   
            }

        }
    }
}

Это же приложение отлично работает на сервере без подкаталогов.Итак, я подозреваю, что это как-то связано с .htaccess.Мой текущий .htaccess:

<IfModule mod_rewrite.c>
 RewriteEngine On
# !IMPORTANT! Set your RewriteBase here and don't forget trailing and leading
#  slashes.
# If your page resides at
#  http://www.example.com/mypage/test1
# then use
# RewriteBase /mypage/test1/
RewriteBase /fikri/ppg-portal/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /fikri/ppg-portal/index.php?/$1 [L,QSA]
</IfModule>

<IfModule !mod_rewrite.c>
# If we don't have mod_rewrite installed, all 404's
# can be sent to index.php, and everything works as normal.
# Submitted by: ElliotHaughin

ErrorDocument 404 /index.php
</IfModule>

Любая помощь очень ценится

Ответы [ 2 ]

0 голосов
/ 18 июня 2019

Попробуй сделать это.

сначала ... используйте официальный .htaccess файл Codeigniter Framework.

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

Примечание: поместите файл .htaccess в ваше корневое приложение: ppg-portal .

затем перейдите в папку config и найдите файл config.php . оставьте index_page пустым, что-то вроде этого.

$config['index_page'] = '';

затем настройте вас base_url правильно, как

$config['base_url'] = 'http://localhost/html/fikri/ppg-portal';

вы должны сделать перенаправление следующим образом

redirect("Conroller/function"); //set this..

вот и все. дайте мне знать результат.

0 голосов
/ 18 июня 2019

Используйте это в вашем .htaccess .. Я думаю, загружается только представление контроллера по умолчанию, попробуйте это ниже

RewriteEngine On
RewriteBase /your_project_folder_name/

#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 [R=302,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} ^application.*
RewriteRule ^(.*)$ /index.php?/$1 [L]

#Checks to
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]

</IfModule>

<IfModule !mod_rewrite.c>
    # If we don't have mod_rewrite installed, all 404's
    # can be sent to index.php, and everything works as normal.
    # Submitted by: ElliotHaughin

ErrorDocument 404 /index.php

</IfModule>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...