저는 CakePHP에 대해 상당히 새로운 기능을 제공합니다. 따라서 Zend Framework와 관련하여 Cake를 사용하여 익숙한 몇 가지 기본적인 것들이 있습니다.URL로 인코딩 된 URL을 CakePHP의 컨트롤러/액션에 전달합니다.
나는 명명 된 매개 변수를 컨트롤러/동작에 전달해야하는 프로젝트에서 작업하고 있습니다. 경로를 설정하고 매개 변수를 전달하는 것은 매우 간단합니다. 내 문제는 매개 변수가 URL 인코딩 된 URL 일 때입니다.
예 : 컨트롤러 및 작업 설정에 관계없이 http://www.cakephp.com/controller/action/http%3A%2F%2Fwww.google.com은 404를 던지 겠지만 /controller/action/http://www.google.com을 어떤 식 으로든 전달하면 유일한 문제는 http를 명명 된 매개 변수로 사용하십시오. 다른 방법으로는 /controller/action?url=http://www.google.com을 사용해도 작동합니다.
이 작업에서 사용한 값은 base64 인코딩 된 문자열로 값을 전달하는 것이지만 몇 가지 제한이 있습니다. 예를 들어 API 인 경우 API를 사용하는 시스템이 base64로 문자열을 인코딩 할 수 있음을 보장 할 수있는 방법이 없습니다.
어쨌든 최상의 솔루션은 URL 인코딩 된 문자열을 명명 된 매개 변수로 전달하는 것입니다. 질문은, 왜 CakePHP가 매개 변수로 urlencode 된 문자열을 받아들이지 않고 왜 404를 던지나요?
미리 감사드립니다.
[URL에서 base64로 인코딩 된 문자열 전달] (http://stackoverflow.com/questions/1374753/passing-base64-encoded-strings-in-url)에 대한 답변을 살펴 보는 것이 좋습니다. – drmonkeyninja