【发布时间】:2011-11-05 15:55:58
【问题描述】:
我有以下链接:
$this->Html->link('admin',array('admin'=>true,'controller'=>'users','action'=>'login','?'=>array('continue'=>$this->here)))
应该会生成如下链接:http://domain.com/admin/login?continue=/location
但是它总是逃避 / 所以我得到一个链接,如:http://domain.com/admin/login?continue=%2Flocation
我该如何阻止这种情况?我在链接中尝试了array('escape'=>false),但这只会转义链接本身而不是href。
【问题讨论】:
-
请问您为什么使用 _GET 参数而不是命名参数?从您的域的外观来看,您的系统上可以使用 mod_rewrite。这样可以省去很多麻烦。
-
如果我这样做会不会看起来很奇怪:
http://domain.com/admin/login/continue:/location -
好吧,将任何特殊字符传递给 url 看起来总是很奇怪。 base64encode 或至少 url_encode 是你应该做的最少的事情,以获得一个有效的 url(蛋糕在这里为你做的)。之后您可以随时“撤消”编码。
-
你能说明你的意思吗?我更喜欢使用 GET 参数,因为它是执行此类操作的标准方式,但我不希望它转义
/ -
与蛋糕无关;据我所知,这是标准行为。登录和重定向时,Wordpress 也会这样做(编码斜杠)。不确定它是特定于浏览器还是特定于语言,但我不相信有解决方案。无论如何,这纯粹是美学,所以真的值得担心。如需进一步讨论,请参阅this thread。