728x90
아래에도 썼지만 Codeigniter3에서는 게시판을 간다고 가정을 하면 아래처럼 도메인과 컨트롤러 사이에 index.php가 기본적으로 들어가게 되어 있었습니다.
https://domain/com/index.php/board/board?id=free
그러다가 4로 넘어오면서는 아래 주소처럼 public이 들어가게 되었습니다. 물론 index.php는 안 쳐도 되지만 public이 무조건 붙어야 합니다. 만약 이대로 클라이언트에게 납품한다고 하면 저게 뭐냐고 하겠지요.
https://domain.com/public
그래서 이걸 없애려면 3과 마찬가지로 루트 디렉토리에다가 .htaccess 파일을 만들어서 위 코드를 넣어서 저장하면 됩니다. 그리고 /public 디렉토리에 있는 .htaccess 파일에도 무언가를 수정하라고 하는데 제 기준(4.6.1)에서는 굳이 수정을 안 했지만 public 경로 없이도 정상적으로 페이지가 뜹니다.
DirectoryIndex /public/index.php
RewriteEngine On
RewriteCond $1 !^(index\.php|images|assets|css|js|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./public/index.php/$1 [L,QSA]
아래 부분은 stackoverflow에서 보다가 갖고 온 건데 보안 관련해서 치명적이라고 하니 따라하지 마세요.
혹시나 몰라 남겨두니 절대 참고하시면 안 됩니다.
========================== 이하 완전 무시하세요! ============================
Codeigniter3에서는 index.php 이게 URL에 붙었는데 4에서는 public까지 붙었습니다.
- /app/Config/App.php 파일을 열어서 $baseURL 변수를 찾습니다. 그런 후 포트만 삭제하면 됩니다.
public $baseURL = 'http://localhost:8080/';
public $baseURL = 'http://localhost/';
다음으로 $uriProtocol 변수를 찾아서 REQUEST_URI라고 된 부분을 PATH_INFO로 변경하시면 됩니다.public $uriProtocol = 'REQUEST_URI';
public $uriProtocol = 'PATH_INFO';
/public 디렉토리에 있는 .htaccess, index.php 이 두 가지 파일을 복사해서 루트 디렉토리로 복사해 넣으세요.
아래 이미지를 보시면 루트 디렉토리에는 .htaccess, index.php 둘 다 없습니다. 그러니 그냥 복사해서 붙여넣으시면 됩니다. 그런 다음 좀 전에 복사한 index.php 파일을 열어서 아래 코드를 찾아서 '../app' 이 부분을 'app'로 변경하면 됩니다.require FCPATH . '../app/Config/Paths.php';
require FCPATH . 'app/Config/Paths.php';
원본 파일을 다운로드 받아서 열어보면 보시다시피 최상단 경로에는 .htaccess, index.php 이 두 가지 파일은 없습니다. 그래서 public 디렉토리로 가서 복사해서 갖고 옵니다.
저 같은 경우는 dothome.co.kr에서 무료 호스팅을 받아서 설치를 했고 PHP는 7.4입니다.
반응형
'Programming > PHP' 카테고리의 다른 글
나이스 본인 인증 - access_token 발급받기 (0) | 2023.01.11 |
---|---|
인스타그램 피드 갖고 오기 - 1, 앱 만들기 (0) | 2022.12.28 |
배열에서 값(value)으로 삭제하기 (0) | 2022.12.26 |
외부 SMTP를 이용해서 메일 보내기 - 2(feat. PHPMailer)[추가@20230412] (0) | 2022.12.07 |
외부 SMTP를 이용해서 메일 보내기 - 1(feat. PHPMailer) (0) | 2022.11.25 |