질문 Q #22678
URL에 . .. ... 입력 질문드립니다.
스엉우 2020-09-06 14:57:02

안녕하세요 선배님들 CI4 에서 url 입력시 문제가 있어서 질문글을 남깁니다

주소/컨트롤러/메서드 구조에서

주소/컨트롤러/ . 또는 .. 또는 ... 등 .(마침표만 입력시)

파일디렉토리를 찾는것으로 실행이 됩니다

ex) 주소/컨트롤러/. => 현재위치

ex) 주소/컨트롤러/.. => 주소(홈)으로 이동

ex) 주소/컨트롤러/... => forbidden 에러

메서드 위치에 . .. ... .... 등을 입력했을때 . .. ... ....이런 마침표를 인자값으로는 받을 수 있는지 알고싶습니다.

 

제가 자주가는 사이트는 주소 뒤에 .....을 붙이면 

https://주소/검색/..............................

=>https://주소/검색/userName=..............................

이런식으로 리다이렉트가 되는데 이것을 하고 싶어서 입니다.

 

.(마침표)뒤에 문자열이 있으면 인자값으로 받을 수 있는데 단독일경우에는 안되네요 

 

1. Route설정에서 

$routes->addPlaceholder('period', '[.]'); 

$routes->get('컨트롤러/(:period)', 'home::index'); 

 

2. .htaccess 에서 RewriteRule을 변경

RewriteRule ^컨트롤러/(.*)$ /컨트롤러/q=$1 [L,R] 

(모든문자열로 해놓고 ".."으로 테스트 => 문자열은 가능, "." ".." "..." 등 마침표 단독은 디렉토리 취급)

 

이런식으로도 해봤지만 .(마침표 단독)은 무슨수를 써도 안되고 있습니다...

 

긴 글 읽어주셔서 감사합니다.

선배님들의 고견 부탁드립니다.

꾸벅

 

 

답변 4
#1 한대승(불의회상) 2020-09-07 11:28:58

. 과 .. 은 현재 디렉토리와 상위 디렉토리로 정의되어 있는게 맞습니다.

. 과 .. 이 재정의되면 여러가지 사이드이펙트가 발생할 겁니다.

css, js, img 등등..

#2 스엉우 2020-09-07 11:32:09

댓글 감사합니다

. .. ... 를 인자값으로 받을 수 없나요?

#3 한대승(불의회상) 2020-09-07 11:57:16
@스엉우 웹서버에서 제어하는거라 딱히 좋은 방법은 떠오르지 않네요.
#4 스엉우 2020-09-07 15:18:36

댓글 감사합니다

참고하겠습니다