【发布时间】:2011-10-13 13:30:56
【问题描述】:
我有一个 CodeIgniter 站点在本地运行良好,但现在我已将它上传到另一台服务器,它在非常特定的条件下中断。
如果我尝试重定向到在 routes.php 中有路由的 URL,服务器将断开连接
即
$route['controller/dothis(:any)?'] = "controller/method/dothis$1";
$route['controller/dothat(:any)?'] = "controller/method/dothat$1";
服务器正在运行 Apache,任何日志中都没有错误,服务器只是断开连接,并且没有向客户端返回任何内容。
事件的顺序是这样的:
- 页面加载正常
- 用户通过 POST 提交表单
- 控制器收到 POST 请求
- 控制器调用redirect() 到/controller/dothis/xxx
- 服务器断开连接
我被这个问题难住了,以前从未见过这种行为。
更新:
日志是这样结束的:
访问日志
2.217.174.75 - - [13/Oct/2011:18:29:04 +0100] "GET /home/index/ HTTP/1.1" 200 7209
2.217.174.75 - - [13/Oct/2011:18:31:18 +0100] "POST /home/index/ HTTP/1.1" 302 68
重写日志
2.217.174.75 - - [13/Oct/2011:18:31:18 +0100] [89.234.23.46/sid#2b5effefb0f0][rid#2b5ef2745340/initial/redir#1] (3) [perdir /var/www/staging/html/] applying pattern '^(.*)$' to uri 'index.php'
2.217.174.75 - - [13/Oct/2011:18:31:18 +0100] [89.234.23.46/sid#2b5effefb0f0][rid#2b5ef2745340/initial/redir#1] (1) [perdir /var/www/staging/html/] pass through /var/www/staging/html/index.php
PHP 或 Apache 错误日志中没有条目。
如您所见,表单已提交,尝试重定向(状态 302),然后浏览器端的连接就消失了。
系统日志中没有 Apache 崩溃的条目。
【问题讨论】:
标签: codeigniter redirect routes