Компания, в которой я сейчас работаю, имеет 3+-летний сайт, основанный на symfony 2.8. Недавно он был развернут для тестирования новому клиенту. Изображения на оригинале доступны в html, например «/bundles/bundlename/images/image.png».Почему не работает эта перезапись?
На сервере клиентов все это находится под подпапкой, поэтому URL-адрес изображения должен быть как «/d2s/bundles/bundlename/images/image.png». У нас есть файл .htaccess в веб-директории проекта так:
DirectoryIndex app.php
<IfModule mod_rewrite.c>
RewriteEngine On
FollowSymLinks On
RewriteRule /?bundles/(.*)$ /d2s/bundles/$1 [NC,R=301,L]
# Determine the RewriteBase automatically and set it as environment variable.
# If you are using Apache aliases to do mass virtual hosting or installed the
# project in a subdirectory, the base path will be prepended to allow proper
# resolution of the app.php file and to redirect to the correct URI. It will
# work in environments without path prefix as well, providing a safe, one-size
# fits all solution. But as you do not need it in this case, you can comment
# the following 2 lines to eliminate the overhead.
RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
RewriteRule ^(.*) - [E=BASE:%1]
[,,,]
Все остальные части работают нормально, в VirtualHost Apache Conf в AllowOverride устанавливается на все. Но этот url-переписывать просто не работает, как если бы его вообще не было.
Любая идея, что может быть неправильным?
Я только что понял, что совершил концептуальную ошибку. Так как все приложение находится в подпапке (/ d2s /), вызов/bundles/никогда не достигнет docroot приложения и, следовательно, .htaccess. Независимо от того, что я положил в него, не будет работать так. Если модератор читает эту просьбу, закройте этот вопрос! – posthy