내맘대로 라이프

[PHP] Codeigniter(코드이그나이터) 404 Not Found 본문

Html5 JS CSS

[PHP] Codeigniter(코드이그나이터) 404 Not Found

내눈물 2024. 1. 5. 16:25

코드이그나이터 강좌를 따라가다 보니 처음부터 문제가 생겼습니다.

127.0.0.1 에 index.php가 있고

controllers에 Sub.php를 만들어 넣고

routes.php를 수정해서

$route['sub'] = 'sub/index';

를 넣었는데

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Sub extends CI_Controller {
    public function index()
    {
        echo '서브페이지 입니다.';
    }
}

Sub.php는 이렇게 제작했습니다.

그러면 

127.0.0.1/sub에 접속하면

이렇게 보여야 하는데

이렇게 보이는 문제가 생긴거죠

 

127.0.0./index.php/sub로 접속하면

잘 보이지만 보통 주소를 저렇게 적진 않죠...

 

보고있던 강좌에서는 루트 폴더에

.htaccess 파일을 만들어서

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

이걸 넣으면 될거다 라고 하셨는데 안되더라구요

 

그래서 여기저기 뒤져보니까 스택오버플로에 답이 있더라구요

.htaccess파일을 루트에 넣는건 맞는데 안의 내용이 더 있습니다

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_URI} ^system.*
    RewriteRule ^(.*)$ /index.php?/$1 [L]
    RewriteCond %{REQUEST_URI} ^application.*
    RewriteRule ^(.*)$ /index.php?/$1 [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?/$1 [L]

</IfModule>

<IfModule !mod_rewrite.c>

    ErrorDocument 404 /index.php

</IfModule>

라고 넣어야 해요

.htaccess
0.00MB

 

파일도 첨부합니다.

이 파일을 넣어주고 나면

이렇게 나옵니다.

 

간단한건데... 제대로 나와있는데가 없어서 한두시간을 헤맸습니다.

백엔드의 길은 멀고도 험하네요