Другой режим перезаписи для корня веб-сайта CFWheels

Нужен совет по исследованию следующего вопроса.

Сайт Wheels настроен set(URLRewriting="On"), все выглядит нормально, кроме корневой страницы.

Все ссылки, созданные с помощью linkTo, выглядят как website.tld/controller/action.

Но на a / режим "переключился" на частичный и ссылки имеют вид website.tld/index.cfm/controller/action. Интересно, что если страница маршрута по умолчанию доступна явно (/pages/index в данном случае) -- URL-адреса построены правильно.

Веб-сайт работает в Tomcat с Apache2 под Ubuntu, стандартные правила перезаписи Wheels настроены непосредственно в конфигурации виртуального хоста в качестве обходного пути для известной проблемы с .htaccess.

Когда начать? Какие переменные проверять и как это отлаживать?

Спасибо.

UPD Все, что я вижу на данный момент, это то, что при прямом доступе к действию по умолчанию в выводе отладки нет Route: home. Не знаю, как использовать эту информацию, у меня очень мало опыта работы с Wheels.


person Sergey Galashyn    schedule 10.06.2011    source источник
comment
Не уверен, что это ответ, поэтому я оставлю комментарий. Обычно Wheels игнорирует set(urlRewriting="On"), если вы не перезаписываете rewrite.cfm. Убедитесь, что запросы направляются через rewrite.cfm, а не через index.cfm.   -  person Chris Peters    schedule 11.06.2011
comment
@Chris Я проверил область CGI, и сценарий был index.cfm. Я исправил правила перезаписи, и теперь все в порядке, пожалуйста, оставьте свой комментарий как ответ, я отмечу его принятым.   -  person Sergey Galashyn    schedule 11.06.2011


Ответы (2)


У меня очень похожая конфигурация, и я столкнулся с той же проблемой только сейчас. В качестве временного обходного пути я обнаружил, что, изменив строку 294 файла wheels/global/public.cfm с

loc.returnValue = application.wheels.webPath & ListLast(request.cgi.script_name, "/");

to

loc.returnValue = application.wheels.webPath;

этот linkTo() построил путь, который работал с перезаписью URL. Я свяжусь с друзьями, более знакомыми с Wheels, чтобы узнать, нужен ли патч, чтобы исправить это.

person Robin Hilliard    schedule 11.06.2011
comment
Я только что понял, что это может быть не совсем та же ситуация - моя проблема заключалась в том, что linkTo() записывала /index.cfm/controller/action, когда перезапись была включена, а не /controller/action. - person Robin Hilliard; 11.06.2011
comment
Робин, ваша проблема выглядит точно так же - неправильная вставка /index.cfm/ в сгенерированный URL. Спасибо за обходной путь, хотя я также хотел бы услышать некоторые мысли от разработчиков Wheels, я знаю, что некоторые из них тоже являются пользователями SO. - person Sergey Galashyn; 11.06.2011

Поскольку Крис Питерс не создавал ответ, я сделаю это, просто чтобы отметить вопрос как решенный. Вся слава Крису, в любом случае.

Обычно Wheels игнорирует set(urlRewriting="On"), если вы не перезаписываете в rewrite.cfm. Убедитесь, что запросы направляются через rewrite.cfm, а не через index.cfm

Это означает, что вам нужно проверить область CGI на проблемных страницах и исправить правила перезаписи обходных путей (думаю, их немного для Tomcat+CFWheels).

person Sergey Galashyn    schedule 13.06.2011
comment
Только сейчас заметил, что вы попросили меня поставить это как ответ. Надо проверить настройки уведомлений по электронной почте. :-/ Рад, что вы разобрались! - person Chris Peters; 16.06.2011