Проблема с маршрутизацией Symfony с онлайн-проектом - PullRequest
0 голосов
/ 17 ноября 2009

У меня есть проект Symfony на компьютере с Win XP / IIS 7 с установленной перезаписью Isapi. Когда я захожу во внешнее (мое основное) приложение, кажется, что маршрутизация просто не работает. Я всегда оказываюсь на моем модуле / действии по умолчанию. Однако, если я включу no_script_name = off (в файле settings.yml приложения), то все работает нормально. У меня также есть приложение администратора как часть проекта (который также имеет no_script_name = off), и это тоже отлично работает. Кажется, это должно быть простой проблемой, но мы работаем над этим уже 4 часа. Любая помощь будет принята с благодарностью, спасибо.

Edit: я изменил среду фронт-контроллера на dev, чтобы использовать панель инструментов отладки, и обнаружил, что независимо от того, как выглядит мой URL, он всегда говорит

Сопоставить маршрут "домашняя страница" (/) для / с массивом параметров ('module' => 'default', 'action' => 'index',)

Что бы я ни делал, модуль всегда равен значению по умолчанию

Ответы [ 3 ]

1 голос
/ 19 ноября 2009

Я нашел решение. Я добавил этот код в начало моего index.php

$_SERVER['REQUEST_URI'] = $_SERVER['HTTP_X_REWRITE_URL'];

Я попробовал все в учебнике по Symfony on IIS (http://trac.symfony -project.org / wiki / symfonyOnIIS ) и ничего не изменило. Если кто-то столкнется с этой проблемой, попробуйте сначала добавить приведенный выше код перед тем, как взламывать какие-либо настройки или правила .htaccess.

1 голос
/ 24 мая 2010

Проверьте новый модуль Url Rewrite для IIS:

http://learn.iis.net/page.aspx/734/url-rewrite-module/

Он даже добавляет в диспетчер IIS инструмент, который импортирует и преобразует правила mod_rewrite

1 голос
/ 18 ноября 2009

IIS не очень хорошо поддерживает перезапись URL, что является обязательным требованием маршрутизации Symfony для работы. По сути, веб-сервер должен перенаправлять все запросы к несуществующим файлам / путям в index.php Symfony, передавая вместе с ним исходный запрошенный URL-адрес. Symfony декодирует этот URL и применяет свои правила маршрутизации.

Но это возможно. Вам нужно будет выполнить следующее: Symfony на IIS

...