ltrim 这个函数的第二个参数设置不合理。
return base64_encode('/' . ltrim($_SERVER['REQUEST_URI'], dirname($_SERVER['PHP_SELF'])));
假如 dirname($_SERVER['PHP_SELF']) 里包含有 $_SERVER['REQUEST_URI'] 里的某个字符,那ltrim会把这些字符删除掉,导致网址最后无效。
我知道你们想去掉目录部分,但亲,真的不是这样做的。
-------------------
举例:
uri 是 /admin/approval/list/
dirname of php_self 是 /index.php/admin/approval
ltrim 后,就变成 st/ 了。因为 list 中的 l 和 i 都包含在 php_self中。
--------------------
看手册。。。
http://php.net/manual/en/function.ltrim.php
--------------------
我自己修复了一下,直接返回base64_encode就行了。不知道还会有哪些bug,到时候再解决。
return base64_encode($_SERVER['REQUEST_URI']);
阅读全文
收起全文