Я просто столкнулся с какой-то странной ситуацией. У меня есть проект в symfony 1.4, в котором есть два приложения (api и admin). Я использую для работы две ОС, в офисе у меня убунту, а дома виндовс 7.
В офисе (ubuntu 11.10) все работает нормально, а дома (Window 7 с XAMPP), когда я запрашиваю URL-адрес из приложения API (скажем, http://www.domain.local/api_dev.php/users.xml
), передний контроллер, дающий ответ, является администратором (admin_dev.php). Как следствие, я получаю 404 ошибки, поскольку этот маршрут определен не в приложении администратора, а в API.
Я отбросил ошибку в копии проекта или еще, так как я использую git для контроля версий. Приложение API основано на sfDoctrineRestGeneratorPlugin и раньше работало нормально, я не заметил, когда ввел ошибку, т.к. в офисе все шло нормально. Я попытался очистить кеш, снова клонировать проект из офиса, но безуспешно.
Мне не кажется проблемой XAMPP, так как раньше он работал нормально, и запрос http://www.domain.local/api_dev.php/product.xml
дал мне эти записи в журналах:
admin_dev.log
Apr 03 14:42:09 symfony [err] {sfError404Exception} Empty module and/or action after parsing the URL "/product.xml" (/).
api_dev.log [Пустой файл журнала]
Если я запрошу: http://www.domain.local/api_dev.php/
, он отправит меня на домашнюю страницу администратора, но если я запрошу: http://www.domain.local/api_dev.php
(обратите внимание на отсутствие косой черты), он перейдет к индексному маршруту по умолчанию в API. А в api_dev.log получаю ожидаемые записи. Это заставляет меня задуматься о маршруте, но никаких идей не возникает.
В обоих приложениях у меня есть маршрут домашней страницы по умолчанию, например:
-API-
homepage:
url: /
param: { module: product, action: index }
-Админ-
homepage:
url: /
param: { module: ouradmin, action: index }
Спасибо, что выслушали и уделили время. Любая помощь или совет будут очень признательны.
Спасибо, Дэвид.