개발 Q&A

제목 CodeIgniter4 에서 url 한글포함시 데이터가 안읽힙니다.
카테고리 서버
글쓴이 코드이그버그잡이 작성시각 2023/12/19 15:20:08
댓글 : 9 추천 : 0 스크랩 : 0 조회수 : 4265   RSS

https://www.cikorea.net/bbs/view/qna?idx=9892&view_category=&lists_style=#google_vignette

이글의 질문과 같은 상황인데 글은 2.0 버전때이고 저는 4.0 버전입니다.

 

https://cikorea.net/bbs/view/qna?idx=11319

위 글에서 보면 config.php 파일을 확인해서 수정하라는데

 

어디에 있는 config.php파일을 어떻게 수정하라는것인지 정확히 모르겠습니다.

아마 버전이 바뀌면서 해당 파일도 바뀐게 아닐가 생각합니다.

 

url에 한글이 들어가도 정상적으로 페이지 접근을 하고 싶습니다. 어떻게 해야 할까요???

 

 다음글 자바스크립트가 어려워요ㅠㅠ (2)
 이전글 IIS상에서 CodeIgniter4 UNC Path 지... (2)

댓글

변종원(웅파) / 2023/12/19 15:46:06 / 추천 1
코드이그버그잡이 / 2023/12/21 21:21:41 / 추천 0

site.com/finish/김

형태로 접근하는데 위정보로도 접근이 안됩니다. 혹시 

이방법 말고 다른방법은 없을까요?
RewriteRule !index\.php index.php [NC,L]
cilove / 2023/12/21 23:40:13 / 추천 0
코드도 없고 에러 내용도 없고 답변드리기가 매우 힘든 질문입니다.
코드이그버그잡이 / 2023/12/22 10:15:56 / 추천 0

404 Can't find a route for 'get: finish/�ѱ�'.

 

site.com/finish/김이박 으로 접근하면

위와같이 나옵니다.

한글이 깨집니다. 영문이나 숫자를 붙이면 페이지에 정상연결됩니다.

해당 페이지에서 해당결과값을 처리하는것은 아직 없어서 페이지 처리 문제는 없을것 같습니다.

cilove / 2023/12/22 14:23:47 / 추천 0

우선 404면 메소드를 안타는것 같은데

class/method 가 기본 인데 파일에 메소드가 한글이라는 뜻일까요?

<?php
namespace App\Controllers;

class finish extends BaseController
{
    public function 김이박(): string
    {
        echo 'test';
    }
}

혹시 이런식으로 작업 한것은 아니죠???

 

코드와 라우터 설정을 보여주세요

코드이그버그잡이 / 2023/12/22 15:17:45 / 추천 0
라우터.php
$routes->get('/finish/(:any)', 'Patient::join_finish/$1', ['namespace' => 'App\Controllers']);
 
 
컨트롤.php
public function join_finish($name){
     return view('join_finish',["name"=>$name]);
  }
 
이런식으로 접근되어 있고 외부에서 저희쪽 url을 직접 쳐서 접근합니다.
현재 view 페이지 join_finish.php 는 변수받는 처리도 없이 html소스로만 표기되어 있습니다.
 
 
이런식으로 접근시 위 오루가 발생되고 있는 상태입니다.
 
이렇게 설명드리면 될까요?
cilove / 2023/12/22 16:10:07 / 추천 0

Config/Routes.php

$routes->get('/finish/(:any)', 'Finish::join_finish/$1');

Controllers/Finish.php

<?php

namespace App\Controllers;

class Finish extends BaseController
{
    public function index(): string
    {
        return view('welcome_message');
    }

    public function join_finish(?string $name=null): string
    {
        return view('who', ['name' => $name]);
    }
}

 

테스트 해보니 잘되는것 같은데요.

 

 

코드이그버그잡이 / 2023/12/22 16:20:09 / 추천 0

혹시 .htaccess 는 어떻게 작성하셨는지 알려주실수 있나요??

htaccess 파일이 여러곳에 있는데 전부 RewriteRule !index\.php index.php [NC,L]

이부분을 추가하면 되나요?

cilove / 2023/12/22 16:29:04 / 추천 0

https://github.com/codeigniter4/appstarter/blob/master/public/.htaccess

참조하세요

참고로 .htaccess 는 아파치에서 사용합니다.

nginx는 서버에서 설정하셔야합니다.

아파치면 AllowOverride All 설정이 들어있는지도 확인하셔야하고 public/.htaccess를 수정하면됩니다.