最近用symfony框架给手机app做后台,发现在中国移动cmwap网络下会出现问题,所有请求都路由到根路径了

symfony框架在中国移动cmwap网络下访问的问题-LMLPHP

左图为原始$_SERVER对象,右图为$request->server对象
由于request_uri被改了,导致任何请求都会被symfony框架路由到根路径
同时少了一个x-original-url请求头
原因在symfony的Request类源码中

symfony框架在中国移动cmwap网络下访问的问题-LMLPHP

可以看到当有x-original-url请求头的时候就直接拿过来当request-uri了,但是中国移动cmwap比较恶心人,传了这个头了但没传对,现在把代码改为

symfony框架在中国移动cmwap网络下访问的问题-LMLPHP

还有框架的启动文件bootstrap.php.cache,里边也有这段代码,同样的改过来就行了

04-26 05:48