https://sourceforge.net/p/xe-core/wiki/Functions/
에서 getNotEncodedUrl 검색해보시면 http 프로토콜을 포함하지 않고 /mid/123 같은 형태로 uri를 만들어서 저장하게 됩니다. (최근에 알림센터의 보안 이슈관련 부분도 도메인이 포함되어있어서 도메인을 포함하지 않고 저장하도록 한적이 있는데 이렇게 처리 하였엇습니다.)
그래서 기본동작은 getNotEncodedUrl을 사용할경우 도메인이 포함되지 않는 것이 원칙입니다만 특정 환경이나 SSL설정의 유무에 따라 포함되는 경우도 있는 것으로 보여집니다..
XE의 기본URL과 같은 도메인에 소속된 주소이고, full SSL이라면 람보님 말씀처럼 도메인이 없는 URL이 자동으로 생성되어야 맞습니다만... 어떤 이유에서인지 이게 제대로 적용되지 않고 있는 모양이네요.
getUrl과 getNotEncodedUrl의 차이는 escape가 되느냐 안되느냐의 차이일 뿐, 위의 내용은 변함이 없습니다. 템플릿에서는 escape가 반드시 필요하므로 getUrl을 사용하는 것이 옳습니다. getNotEncodedUrl은 템플릿이 아닌 controller에서 리다이렉트 처리를 할 때 주로 사용합니다.
댓글 17
getNotEncodedUrl('', 'mid','~~~')
으로 사용해보세요.
https://sourceforge.net/p/xe-core/wiki/Functions/
에서 getNotEncodedUrl 검색해보시면 http 프로토콜을 포함하지 않고 /mid/123 같은 형태로 uri를 만들어서 저장하게 됩니다. (최근에 알림센터의 보안 이슈관련 부분도 도메인이 포함되어있어서 도메인을 포함하지 않고 저장하도록 한적이 있는데 이렇게 처리 하였엇습니다.)
그래서 기본동작은 getNotEncodedUrl을 사용할경우 도메인이 포함되지 않는 것이 원칙입니다만 특정 환경이나 SSL설정의 유무에 따라 포함되는 경우도 있는 것으로 보여집니다..
일단 도메인이 포함되서 결과가 만들어져서요.
그럼 배열에서 [path] [query] 두개만 연속으로 뽑아서 변수에 담으려면 어쩌면 될까요 ?
어떤 배열이고 그 배열의 내용이 어떤 내용을 가지고 어디로 입장하는 도메인을 만드는것인지가 궁금합니다.
[path] [query] 이라는 복합적으로 해석이 가능한 단어말고.. 직관적으로 어떤것인지 명시 해주시면 답변드리기 편할 것 같아요.
https://domain.com/index.php?abcd
저는 index.php?abcd 가 필요합니다.
배열에는 /index.php가 pathe 이고 abcd가 query 입니다.
저는 path?query 가 필요한 상황입니다.
$uri = $arrayUri['path'] . '?' . $arrayUri['query'];
이렇게 만들어보세요.
요런 형태입니다.
제가 필요한건 [path] [query] 두개가 필요합니다. ㅡㅡ;
"parse_url 로 담으면 array 로 담기는데요.
제가 필요한건 [path] [query] 두개가 필요합니다. ㅡㅡ;"
제가 이해가 안되어서요..
일반적으로 getUrl 도 그렇고 도메인은 포함되지 않는 것으로 저장되는 형태로 이해하고 있어요.
XE의 기본URL과 같은 도메인에 소속된 주소이고, full SSL이라면 람보님 말씀처럼 도메인이 없는 URL이 자동으로 생성되어야 맞습니다만... 어떤 이유에서인지 이게 제대로 적용되지 않고 있는 모양이네요.
getUrl과 getNotEncodedUrl의 차이는 escape가 되느냐 안되느냐의 차이일 뿐, 위의 내용은 변함이 없습니다. 템플릿에서는 escape가 반드시 필요하므로 getUrl을 사용하는 것이 옳습니다. getNotEncodedUrl은 템플릿이 아닌 controller에서 리다이렉트 처리를 할 때 주로 사용합니다.
preg_replace('!^https?://[^/]+!', '', getUrl(.....))
이렇게 getUrl의 결과를 정규식으로 처리하는 방법도 있습니다. parse_url을 사용하여 불필요한 구성요소까지 모두 다 분리해 내는 것보다 성능상의 이점이 있을지는 모르겠습니다만, 한 줄로 처리하기에는 이쪽이 편하죠.
주소는 도메인 없이 잘 만들어지는데 템플릿에서 출력하여 도메인이 붙어 출력되는거 같고 일단 게시판 스킨에서 만든 주소를 애드온의 js에서 사용하도록 하려다 보니 그냥 애드온의 주소체계를 바꾸는게 더 좋은거 같아 그렇게 했네요.