Symfony: маршрутизация не работает для защищенных модулей - PullRequest
0 голосов
/ 23 мая 2011

Мой проект Symfony развернут на виртуальном хостинге на субдомене .

Все незащищенные модули работают нормально, но ни один из защищенных модулей не загружается, и при маршрутизации происходит сбой, выдавая ошибку Пустой модуль и / или действие ... ,Маршрутизация работает нормально для неаутентифицированных модулей.Я не мог найти много в журналах, просто что sfBasicSecurityFilter не вызывался.

Чтобы решить это,

  1. Я следовал решению в этом билете и добавил 'POST' в класс sfRequestRoute
  2. Я также попытался добавить требование sf_method к маршрутам
  3. Модуль Auth ранее назывался default, поэтому, чтобы избежать конфликта имен, я даже изменилимя модуля
  4. Я несколько раз сбрасывал кэш
  5. Он отлично работает во всех локальных средах.

Есть какие-нибудь решения?

[EDIT] Еще один эксперимент Я использовал контроллер frontend_dev.php в настройках и сравнил его с журналом из index.php

index.php , когдазапрос маршрута / цены, полученной из незащищенного модуля

May 23 12:37:38 symfony [info] {sfPatternRouting} Connect sfRoute "sf_guard_signin" (/guard/login)
May 23 12:37:38 symfony [info] {sfPatternRouting} Connect sfRoute "sf_guard_signout" (/guard/logout)
May 23 12:37:38 symfony [info] {sfPatternRouting} Connect sfRoute "sf_guard_forgot_password" (/guard/forgot_password)
May 23 12:37:38 symfony [info] {sfPatternRouting} Connect sfDoctrineRoute "sf_guard_forgot_password_change" (/guard/forgot_password/:unique_key)
May 23 12:37:38 symfony [info] {sfPatternRouting} Match route "home_pricing" (/pricing) for /pricing with parameters array (  'module' => 'home',  'action' => 'pricing',)
May 23 12:37:38 symfony [info] {sfFilterChain} Executing filter "sfRenderingFilter"
May 23 12:37:38 symfony [info] {sfFilterChain} Executing filter "sfCacheFilter"
May 23 12:37:38 symfony [info] {sfFilterChain} Executing filter "sfCommonFilter"
May 23 12:37:38 symfony [info] {sfFilterChain} Executing filter "sfExecutionFilter"
May 23 12:37:38 symfony [info] {homeActions} Call "homeActions->executePricing()"
....
May 23 12:37:38 symfony [info] {sfWebResponse} Send status "HTTP/1.1 200 OK"
May 23 12:37:38 symfony [info] {sfWebResponse} Send header "Content-Type: text/html; charset=utf-8"
May 23 12:37:38 symfony [info] {sfWebResponse} Send content (6444 o)

frontend_dev.php при запросе маршрута / цены, поступающей из незащищенного модуля

May 24 08:14:28 symfony [info] {sfPatternRouting} Connect sfRoute "sf_guard_signin" (/guard/login)
May 24 08:14:28 symfony [info] {sfPatternRouting} Connect sfRoute "sf_guard_signout" (/guard/logout)
May 24 08:14:28 symfony [info] {sfPatternRouting} Connect sfRoute "sf_guard_forgot_password" (/guard/forgot_password)
May 24 08:14:28 symfony [info] {sfPatternRouting} Connect sfDoctrineRoute "sf_guard_forgot_password_change" (/guard/forgot_password/:unique_key)
May 24 08:14:28 symfony [err] {sfError404Exception} Empty module and/or action after parsing the URL "/frontend_dev.php/pricing" (/).
May 24 08:14:28 symfony [info] {sfWebResponse} Send status "HTTP/1.0 404 Not Found"

Я использую HTACCESS для включения маршрутизации / public_html / .htaccess (пусто)

/ public_html / demo / .htaccess

#RewriteEngine on
#RewriteBase /

#RewriteCond %{REQUEST_URI} !^/web/ 
#RewriteRule .* /web/%1 [QSA]

Options +FollowSymLinks +ExecCGI

<IfModule mod_rewrite.c>
  RewriteEngine On

  # we skip all files in /web
  RewriteCond %{REQUEST_URI} ^/web/
  RewriteRule .* - [L]

  # we rewrite all other files with .something to /web
  RewriteCond %{REQUEST_URI} \..+$
  RewriteCond %{REQUEST_URI} !\.html$
  RewriteRule ^(.*)$ /web/$1 [L]

  # !!! UNTESTED !!! ##################################
  # we check if the .html version is in /web (caching)
  #RewriteRule ^$ /web/index.html [QSA]
  #RewriteRule ^([^.]+)$ /web/$1.html [QSA]
  #####################################################

  # no, so we redirect to our front web controller
  RewriteRule ^(.*)$ /web/index.php [QSA,L]

</IfModule>

# big crash from our front web controller
ErrorDocument 500 "<h2>Application error</h2>symfony application failed to start properly"

/ public_html / demo / web / .htaccess (пусто)

Ответы [ 2 ]

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

Это было совсем плохо.Разработав его для Windows, я использовал / в одном из путей, включенных в модуль sfGuard.Это привело к фатальной ошибке.

Сделайте какое-то эхо в index.php или кубике, чтобы выделить такие ошибки.

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

Вы используете sfGuardAuht? Вы выполнили «php symfony plugin: publish-assets» в развертывании?

...