제목 | 현재 url을 유지하면서 프록시를 이용하고 싶습니다. | ||
---|---|---|---|
카테고리 | CI 2, 3 | ||
글쓴이 | 케케케 | 작성시각 | 2023/04/03 14:29:01 |
|
|||
안녕하세요 codeigniter를 이용한 프로젝트를 사용하고있습니다. 하려고 하는 작업은 a.com/test 이라고 브라우저에 입력을 하면 브라우저에는 a.com/test가 유지 되지만백앤드에서는 a.com/i/test로 프록시가 되도록 적용하고싶습니다. 이렇게 한 의도는 뒤에 url path에 따라서 프로젝트가 바뀌는건데url의 첫번째는 컨트롤러 명칭이다보니 I라는 컨트롤러는 생성하고 나머지는 i/(:any)/write= board/write이런식으로 route.php에서 설정하였습니다. 모든 url에 강제로 I 컨트롤러를 넣다보니 a.com/i/test/write => board 컨트롤러 write 이런 방식입니다.
아무튼 위에 의도를 하고자apache2.conf 설정파일에 ProxyPass /test http://a.com/test/ ProxyPassReverse /test http://a.com/i/test/ 이런식으로 하면 해결이 되지만 프로젝트가 test만 있는게 아니고 몇십개가 있으며 해당 프로젝트명을 모두 하드코딩식으로 설정파일에 작성하거나 추가될때마다 설정파일을 수정하는게 번거로워서정규식을 통해 이용하고싶어요 RewriteRule ^/(?!i/)([^/]+)/?$ http://a.com/i/$1/ [P,L] ProxyPassReverse / http://a.com/ 이런식으로 해봤는데도 잘 안되네요...어떻게 해야할까요? |
|||
다음글 | css나 js경로문제 (1) | ||
이전글 | PHP 8.2 + CI 4.3.3 에서 에러 문의 (C... (6) | ||
한대승(불의회상)
/
2023/04/04 09:27:30 /
추천
0
|
케케케
/
2023/04/04 13:00:51 /
추천
0
ㄴ 관리자용과 사용자용 컨트롤러를 사용하는것이 아닙니다. test라는 프로젝트를 사용해야하는데 codeigniter의 첫번째 segment는 컨트롤러 명칭이라서 임의로 I라는 컨트롤러를 생성하였고 i/test/board... 이런식으로 첫번쨰 segment가 I 컨트롤러 두번째 segment가 프로젝트명, 세번째는 메서드이름 이런식으로 하는거에요 따로 역할분리를 하려는 의도는 아닙니다. |
생각생각
/
2023/05/10 15:28:41 /
추천
0
저는 주로 아래와 같이 routes.php에서 라우팅 설정하여 사용하고 있습니다. 컨트롤러에 i 디렉토리 생성 후 그 안에다가 컨트롤러를 생성하셨다면, 라우팅으로는 i를 생략하고 접근하게 됩니다. 아래와 같이 명시했을 때 admin 혹은 i 경로를 첫번째 segment로 접근하는 경우에만 생략하지 않습니다. $route['((?(?=admin|i)|.)*)'] = 'i/$1'; |
일반적으로는 컨트롤러 폴더에 i 라는 폴더를 만들고 그 안에 컨트롤러 파일을 두시면 됩니다.
관리자용 컨트롤러와 일반 사용자용 컨트롤러로 역할 분리하여 설계하는것이 보안상 좋습니다.