Проблема с приложением Zend на iis6 - PullRequest
0 голосов
/ 06 мая 2011

Когда я передаю URL как http://localhost/home/index/index в моем приложении, я получаю модуль => default, controller => index, action => index.Каким бы ни был URL, я получаю одно и то же.Я запускаю приложение на IIS6 на платформе Windows 2003.Если я переопределяю модуль как «домашний» в методе Zend_Controller_Request_Abstract => getModuleName (), то моя домашняя страница работает нормально.Я не могу получить, где именно он переопределяет значение «по умолчанию», «индекс», «индекс».Может ли кто-нибудь мне помочь?

Заранее спасибо

Обновление: проблема с $ _SERVER ['HTTP_X_REWRITE_URL'].Я получаю один и тот же URI как в $ _SERVER ['HTTP_X_REWRITE_URL'], так и в $ _SERVER ['REQUEST_URI'], например /public_mvc/index.php.Я не переопределяю значение $ _SERVER ['HTTP_X_REWRITE_URL'] в любом месте моего кода.Мой код .htaccess выглядит следующим образом.

RewriteEngine на

RewriteRule ^ admin-mvc (. *) $ Public_mvc / admin.php [L]

RewriteCond% {REQUEST_FILENAME} -s [ИЛИ]

RewriteCond% {REQUEST_FILENAME} -l [ИЛИ]

RewriteCond% {REQUEST_FILENAME} -d

RewriteRule ^ [\ w / \%] (?.?! ((?: JS | ICO | GIF | JPG | PNG | CSS | HTML) $) [\ ш \%] $)?public_mvc / index.php [I]

RewriteRule ^ $ / home [r = 301, nc]

Я использую ISAPI Rewrite 3 для перезаписи URL.

1 Ответ

0 голосов
/ 06 мая 2011

это то, как Zend Framework обрабатывает модуль "по умолчанию".

Вы можете получить доступ к своему корневому пути следующим образом:

  • domain.tld /
  • домен.tld / index
  • domain.tld / index / index
  • domain.tld / default / index / index

весь запрос приведет к

  • модуль: по умолчанию
  • контроллер: индекс
  • действие: индекс

Обновление 1:

Возможно, существует статический маршрут для модуля home , настроенный

, который отправляет запросы на

  • / home / index / index

на

  • / default / index / index

Обновление 2:

Убедитесь, что у вас установлен Isapi_Rewrite, как указано здесь (поиск IIS):

Обновление 3:

Добавьте это правило перезаписи в .htaccess (какуказано в статье Zend Обновление 2 ):

RewriteRule ^[\w/\%]*(?:\.(?!(?:js|ico|gif|jpg|png|css|html)$)[\w\%]*$)? /index.php [I]

Обновление 4: Попробуйте следующий код в вашем .htaccess (это рекомендация из статьи Zend Обновление 2 )

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
RewriteRule ^[\w/\%]*(?:\.(?!(?:js|ico|gif|jpg|png|css|html)$)[\w\%]*$)? /index.php [I]

Если это не работает, я не уверен, каково решение.Я не использую IIS и не знаком с особенностями там ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...