Внутренняя рекурсия с конфигурацией vhost и .htaccess

#.htaccess #mod-rewrite #subdomain #symfony #vhosts

#.htaccess #перезапись мода #поддомен #symfony #vhosts

Вопрос:

Я пытаюсь настроить веб-сайт на основе symfony2. Все в порядке, но на определенном сервере настроен способ виртуальных хостов apache, а .htaccess в веб-корне symfony вызывает бесконечный цикл.

Если у кого-то есть подсказка, как заставить его работать, ничего не меняя в коде symfony (потому что он должен работать на других серверах). Единственное, что я могу изменить, это настройки хостов и .htaccess.

Вот конфы :

Vhosts (поддомен) :

 RewriteEngine on
RewriteCond %{HTTP_HOST}   ^name.domain.fr [NC]
RewriteRule   ^/(.*)$ /name/web/$1  [L]
  

Symfony2 .htaccess

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

Спасибо за помощь 🙂

Ответ №1:

Добавьте условие, чтобы проверить, не находится ли оно уже в каталоге /name .

 RewriteEngine on
RewriteCond %{HTTP_HOST}   ^name.domain.fr [NC]
RewriteCond %{REQUEST_URI} !^/name/
RewriteRule   ^/(.*)$ /name/$1  [L]
  

Приветствую, Джефф

Комментарии:

1. Спасибо за ответ. Я просто отредактировал, потому что реальная строка есть RewriteRule ^/(.*)$ /name/web/$1 [L] , и поэтому я добавил RewriteCond %{REQUEST_URI} !^/name/web/ . Но это все равно не работает. Есть какие-нибудь подсказки? Спасибо

2. Снова я 🙂 После некоторых тестов все в порядке. Ваше правило было правильным. Большое спасибо!

3. Нет проблем с plopoz. Просто подумав об этом еще раз, вам, возможно, придется добавить некоторые обратные ссылки, если это часть регулярного выражения. / вместо того, чтобы просто /