Почему мой контроллер запрашивает frontend_dev.php в Symfony? - PullRequest
4 голосов
/ 17 февраля 2010

http://localhost/frontend_dev.php/1

Почему указанный выше запрос перенаправляется на frontend_dev.php вместо index.php?

Я прочитал .htaccess:

<IfModule mod_rewrite.c>
  RewriteEngine On

  # uncomment the following line, if you are having trouble
  # getting no_script_name to work
  #RewriteBase /

  # we skip all files with .something
  #RewriteCond %{REQUEST_URI} \..+$
  #RewriteCond %{REQUEST_URI} !\.html$
  #RewriteRule .* - [L]

  # we check if the .html version is here (caching)
  RewriteRule ^$ index.html [QSA]
  RewriteRule ^([^.]+)$ $1.html [QSA]
  RewriteCond %{REQUEST_FILENAME} !-f

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

Если я правильно понимаю, если запрошенный файл не существует, он должен быть перенаправлен на index.php, как можно запустить frontend_dev.php в приведенном выше случае?

Ответы [ 2 ]

6 голосов
/ 18 февраля 2010

В качестве URL вы указали http://localhost/frontend_dev.php/1 - Apache просто подает frontend_dev.php, поскольку вы явно запрашиваете этот файл в URL. Измените свой URL на http://localhost/index.php/1, чтобы увидеть производственный контроллер.

Правила перезаписи имеют дело только с URL, которые вообще не упоминают фронт-контроллер, т.е. http://localhost/1 - правила перезаписи вообще не анализируются для первоначально предоставленного вами URL, поскольку Apache обнаружил файл frontend_dev.php и не нашел подходящего правила перезаписи для анализа.

2 голосов
/ 17 февраля 2010

Simple. Поскольку frontend_dev.php существует, выполняется . И перенаправление не выполняется.

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