400 неверных запросов с правилами перенаправления Symfony2 и html5boilerplate - PullRequest
3 голосов
/ 31 мая 2011

Я недавно перешел на использование PHP-среды Symfony2 и хотел с самого начала включить все преимущества html5boilerplate, однако у меня возникли некоторые проблемы с объединением файлов .htaccess для обоих.

Лучшие три из шаблонной;перенаправление с www.example.com на example.com, example.com/test на example.com/test/ и ограничение доступа к любым папкам, начинающимся с a.(.git, например).

Финальным является перезапись Symfony2 для внешнего контроллера.Я бы хотел, чтобы к нему обращались, если не происходит никаких других перенаправлений (поэтому example.com/hello/ должен его достичь).

<IfModule mod_rewrite.c>
  RewriteCond %{HTTPS} !=on
  RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
  RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
</IfModule>

<IfModule mod_rewrite.c>
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/|#(.*))$
  RewriteRule ^(.*)$ /$1/ [R=301,L]
</IfModule>

<IfModule mod_rewrite.c>
  RewriteRule "(^|/)\." - [F]
</IfModule>

<IfModule mod_rewrite.c>
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>

Если прокомментировано последнее переписывание, Apache возвращает 400 Bad Request, иЯ не совсем уверен, почему .. Перенаправление установлено на внешний (R = 301), поэтому он должен переоценить и перейти к app.php 1.

Перезапись уже включена.

Любые предложения были бы хорошими, но не слишком хороши для переписывания = (

Ответы [ 2 ]

2 голосов
/ 31 мая 2011

Я попытался с вашим конфигом, и у меня не было проблем с настройкой Symfony2.

Попробуйте перенаправить ваши запросы на app_dev.php вместо app.php, чтобы вы могли отследить настоящую ошибку.

Или я неправильно понимаю ваш вопрос?

1 голос
/ 31 мая 2011

Я не уверен на 100% в чем проблема / вопрос, но вы пробовали ...

<IfModule mod_rewrite.c>
  RewriteEngine on

  RewriteCond %{HTTPS} !=on
  RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
  RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/|#(.*))$
  RewriteRule ^(.*)$ /$1/ [R=301,L]

  RewriteRule "(^|/)\." - [F]

  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>
...