0

我在 yii 中的网址是:

http://localhost/php_pro_106/reload/ByCustomer/mJYwIzoaIGe0R8lAVCqPhG%2Fg0jJFWjiWWdPnkq5VDlY%3D

我应该在 url manager 中做什么才能得到这个,我目前的规则是:

'<controller:\w+>/ByCustomer/<giftcode>'=>'<controller>/ByCustomer',

实际上问题是我得到:

The requested URL     /php_pro_106/reload/ByCustomer/mJYwIzoaIGe0R8lAVCqPhG/g0jJFWjiWWdPnkq5VDlY= was     not found on this server.

这是由于%3D %2F在 URL 中。我必须做些什么才能使其正常工作?

4

2 回答 2

0

我知道 apache%2F的 URL 有问题,它总是回复 404,php 脚本没有执行。我从来没有找到解决它的方法。但那是几年前的事了。

编辑:

有一个解决方案,但它要求您至少可以为您的虚拟主机编辑 apache 配置文件(当时我没有那个)。然后你必须AllowEncodedSlashes On在你的<VirtualHost>. 或者您也可以将其设置为全局。

于 2014-08-11T13:07:43.433 回答
0

我得到了解决方案,为此我必须改变我的编码和解码方法:

function base64_url_encode($input) {
 return strtr(base64_encode($input), '+/=', '-_,');
}

function base64_url_decode($input) {
 return base64_decode(strtr($input, '-_,', '+/='));
} 

问题是由于编码的 Url 中存在一些字符。所以,我必须替换这些字符。

这些链接帮助我:

堆栈溢出

谷歌集团

于 2014-08-11T17:22:38.573 回答