我有这个简单的代码
debug($this->referer('foo', true));
debug($this->referer('foo', false));
当我来自本地地址时,我希望得到相同的结果,即
'http://example.com/index.php/admin/groups'
'http://example.com/index.php/admin/groups'
相反,我得到了这个:
'http://example.com/index.php/admin/users/foo'
'http://example.com/index.php/admin/groups'
正如你可以看到我将local设置为true cakePHP referer()返回默认地址,即使referer在本地服务器中
我正在使用cakePHP 2.4
答案 0 :(得分:0)
通常情况下,index.php
不应显示在网址中,除非你有apache的mod_rewrite
和规则已停用(或相当于其他http服务器),并启用了Cake内置的pretty URL's。
根据代码库$this->referer()
,在/
的以下情况下会返回$local = true
:
env('HTTP_REFERER')
为空 AND 您尚未在App.fullBaseUrl
中配置core.php
。 env('HTTP_REFERER')
并非始于App.fullBaseUrl . $this->webroot
(即www.example.com/index.php
)。如果设置了env('HTTP_X_FORWARDED_HOST')
,它会替换上面env('HTTP_REFERER')
的引用。
从这两种选择来看,我会把钱放在App.fullBaseUrl
没有被定义上:)