У меня есть сайт CodeIgniter, который отлично работает локально, но теперь я загрузил его на другой сервер, он разрывается при очень специфическом условии.
Сервер прервет соединение, если я попытаюсь и перенаправлю наURL-адрес, который содержит маршрут в route.php
Т.е.
$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 нет записей.