CI 묻고 답하기

제목 CI4에서 URL 주소에 index.php 보이지 않게할 경우 오류가 발생합니다.
카테고리 CI 4 관련
글쓴이 김영성 작성시각 2023/01/26 14:48:30
댓글 : 12 추천 : 0 스크랩 : 0 조회수 : 24338   RSS

안녕하세요.

CI4에서 URL 주소에 index.php 보이지 않게 설정하였는데 오류가 발생합니다.

app.php 파일에서 public $indexPage = ''; 설정을 수정했습니다.

링크 주소에서는 index.php가 빠지는데 오류가 나고 있습니다.

URL 주소는 http://domain.net/ProductList 나오고 있으나 "404 Not Found" 오류가 납니다.

"The requested URL /ProductList was not found on this server."

public/.htaccess 파일은 아래와 같이 되어 있습니다.

============================================================================

# Disable directory browsing

Options All -Indexes

# ----------------------------------------------------------------------

# Rewrite engine

# ----------------------------------------------------------------------

# Turning on the rewrite engine is necessary for the following rules and features.

# FollowSymLinks must be enabled for this to work.

<IfModule mod_rewrite.c>

    Options +FollowSymlinks

    RewriteEngine On

    # If you installed CodeIgniter in a subfolder, you will need to

    # change the following line to match the subfolder you need.

    # http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewritebase

    # RewriteBase /

    # Redirect Trailing Slashes...

    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteCond %{REQUEST_URI} (.+)/$

    RewriteRule ^ %1 [L,R=301]

    # Rewrite "www.example.com -> example.com"

    RewriteCond %{HTTPS} !=on

    RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]

    RewriteRule ^ http://%1%{REQUEST_URI} [R=301,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 the front controller, index.php

    RewriteCond %{REQUEST_FILENAME} !-f

    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteRule ^([\s\S]*)$ index.php/$1 [L]

    # Ensure Authorization header is passed along

    RewriteCond %{HTTP:Authorization} .

    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

</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.

    ErrorDocument 404 index.php

</IfModule>

# Disable server signature start

    ServerSignature Off

# Disable server signature end

===============================================================================

app.php 파일 외에 어느 부분을 수정을 해야 URL에 index.php가 빠지고 정상적으로 링크가 되는지 고수님들의 답변 부탁 드립니다.

감사합니다.

 다음글 Windows Server에 CodeIgniter4 설... (2)
 이전글 curl header content-type 변경이 안... (2)

댓글

테러보이 / 2023/01/26 15:21:56 / 추천 0

app/Config/Routes.php

$routes->setAutoRoute(true);

주석이 풀어져있는지 체크해보세요

김영성 / 2023/01/26 15:24:13 / 추천 0

Routes.php 파일에 위 주석 풀려 있습니다.

$routes->setDefaultNamespace('App\Controllers');
$routes->setDefaultController('Home');
$routes->setDefaultMethod('index');
$routes->setTranslateURIDashes(false);
$routes->set404Override();
$routes->setAutoRoute(true);
테러보이 / 2023/01/26 15:57:59 / 추천 0
아파치 인지 확인 하고 rewrite가 켜져있는지 체크하세요
김영성 / 2023/01/26 15:59:14 / 추천 0

아파치 서버 웹호스팅 받고 있습니다.

호스팅 업체에서는 문제가 없으며 ci4에서 설정만 해 주면 된다고 답변 받았습니다.

테러보이 / 2023/01/26 16:18:42 / 추천 0

404뜨는 화면 캡쳐해주실레요?

네이티브 404인지 ci 404 인지 판단이 안되서

추가로 /App/Controllers/ProductList.php 가 있는지 체크하시구요

김영성 / 2023/01/26 16:28:03 / 추천 0

http://ollehshop.net/public/404.png

ci 404는 아닌거 같습니다.

/App/Controllers/Product/ProductListController.php 파일 있습니다.

routes에서 설정한 경로입니다.

$routes->get('ProductList', 'ProductListController::index', ['namespace' => 'App\Controllers\Product']);

 

테러보이 / 2023/01/26 16:58:29 / 추천 0

.htaccess 가 적용이 안되고있는듯한데...

김영성 / 2023/01/26 16:59:48 / 추천 0
.htaccess 적용이 되고 있는지 여부는 어떻게 확인이 가능할까요?
테러보이 / 2023/01/26 17:13:37 / 추천 0
phpinfo 찍어서
RewriteEngine on
으로 되있는지 보시겠어요?
김영성 / 2023/01/26 17:21:58 / 추천 0
RewriteEngine 관련 내용이 없습니다.
테러보이 / 2023/01/26 17:24:00 / 추천 0

호스팅 업체에 한번 문의 해보시는게 좋을듯합니다.

.htaccess 가 작동안된다고 하시면됩니다.

김영성 / 2023/01/26 17:30:05 / 추천 0
네 감사합니다.