php redirect 能设置参数吗,php – 我可以在脚本执行之前全局设置$_SERVER [‘REDIRECT_URL’]吗?...

我正在将许多站点从旧服务器配置迁移到新服务器配置.每个站点都基于类似(但可悲的是不相同)的代码库,使用mod_rewrite URL.

> Ubuntu 8.04 LTS => Ubuntu 12.04 LTS

> Apache 2.22.8 => Apache 2.2.22

> PHP 5.2(FastCGI)=> PHP 5.3(PHP5-FPM)

主要像魅力一样工作,但在新的配置中,$_SERVER [‘REDIRECT_URL’]不再设置,并且由于依赖于此全局变量,代码失败.

根据我的理解,当重定向发生时,此变量由Apache设置.显然现在没有发生这种情况,但我很难找到原因.

>它是Apache升级,还是(我的猜测)从PHP FastCGI到PHP5-FPM的转换?

>我如何获得此变量?

我真的宁愿不必编辑每个站点上的代码,所以如果需要我会设置一个全局PHP auto_prepend,但理想情况下我想修复服务器配置并首先设置这个.

潜在相关:我现在还有一些新的$_SERVER变量,即REDIRECT_SCRIPT_URL和REDIRECT_REDIRECT_SCRIPT_URL.这些似乎有我想要的REDIRECT_URL的正确数据,但似乎也表明有两个内部重定向发生,而不是之前 – 谷歌搜索REDIRECT_REDIRECT_SCRIPT_URL只返回随机的var_dump输出. SCRIPT_URL是新的REDIRECT_URL吗?

编辑1

再次检查REDIRECT_URL是(现在)设置,但总是设置为’index.php'(mod_rewrite目标)而不是预期的类型化URL.我已经使用PHP auto_prepend_file来手动设置所需的变量.

我不确定我第一次错过了它,但是我在此期间做了几处改动,所以我想有一个外面的机会它不存在.如果这会误导任何人,请道歉.

编辑2

为了解决下面提到的ErrorDocument,正在使用的mod_rewrite规则是:

RewriteRule ^(.*)$/index.php?url=$1 [QSA,L]

$_GET [‘url’]变量已设置,因此规则必须正常工作.

要清楚,在这个阶段我已经使用了我最初提到的auto_prepend_file解决方法.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值