我在CakePHP上相當新穎,因此,我用Zend Framework做了一些基本的事情,我用Cake打了個蛋。將一個urlencoded URL作爲參數傳遞給CakePHP的控制器/動作
我正在處理一個項目,我必須將一個命名參數傳遞給控制器/操作。設置路由並傳遞參數非常簡單,我的問題是當參數是urlencoded 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不接受一個urlencoded字符串作爲參數,爲什麼它會拋出一個404?
感謝所有提前。
也許值得看看[在URL中傳遞base64編碼的字符串]的答案(http://stackoverflow.com/questions/1374753/passing-base64-encoded-strings-in-url)。 – drmonkeyninja 2016-01-06 11:53:58