у меня есть ресурсы, которыми поделились с другим проектом. Изображения продуктов, которые я покажу, хранятся в папке из моего нового проекта, для которого я использую Symfony ...
В моем проекте symfony в папке /web/images
я создал символическую ссылку на папку, в которой хранятся мои изображения. Я уверен, что права доступа для каждого файла и папки в папке рисунков, указанной символической ссылкой, установлены 777, каждый может получить к ним доступ.
Все работало нормально, пока я не включил переписывание модов Apache. Картинки в папке /web/images
были показаны отлично, купить что-либо доступное по символической ссылке не было показано. Я сразу подумал, что символическая ссылка была причиной этого поведения, и я проверил свою конфигурацию apache для сайта. Также, читая Symfony, я проверил файл .htaccess
в папке /web
и добавил строку:
Options FollowSymLinks
Это тоже не сработало.
Вот моя конфигурация сайта:
#<VirtualHost mydomain.com>
<VirtualHost *:80>
#ServerAdmin webmaster@localhost
ServerAdmin admin@mydomain.com
ServerName mydomain.com
ServerAlias www.mydomain.com
#DocumentRoot /var/www
DocumentRoot /srv/www/mydomain.com/public_html/
<Directory />
Options FollowSymLinks
#AllowOverride None
AllowOverride All
Order allow,deny
allow from all
</Directory>
#<Directory /var/www/>
<Directory /srv/www/mydomain.com/public_html/>
Options Indexes FollowSymLinks MultiViews
#AllowOverride None
AllowOverride All
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
#AllowOverride None
AllowOverride All
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
#Options +ExecCGI -MultiViews +FollowSymLinks
Order allow,deny
Allow from all
</Directory>
#ErrorLog ${APACHE_LOG_DIR}/error.log
ErrorLog /srv/www/mydomain.com/logs/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
#CustomLog ${APACHE_LOG_DIR}/access.log combined
CustomLog /srv/www/mydomain.com/logs/access.log combined
Alias /sf /home/victor/projects/vitoquen/tienda/lib/vendor/symfony/data/web/sf
<Directory "/home/victor/projects/vitoquen/tienda/lib/vendor/symfony/data/web/sf">
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from All
</Directory>
#Alias /doc/ "/usr/share/doc/"
#<Directory "/usr/share/doc/">
# Options Indexes MultiViews FollowSymLinks
# #AllowOverride None
# AllowOverride All
# Order deny,allow
# Deny from all
# Allow from 127.0.0.0/255.0.0.0 ::1/128
#</Directory>
</VirtualHost>
А вот и мой .htaccess
:
Options +FollowSymLinks +ExecCGI
<IfModule mod_rewrite.c>
RewriteEngine On
Options FollowSymLinks
# 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>
Есть предложения? спасибо, что нашли время, чтобы прочитать и ответить !!!
EDIT:
Я попробовал Znarkus ' решение, и не сработало! это, я думаю, может означать, что символическая ссылка не была проблемой.
Файлы в папке с изображениями сохраняются без расширения. Из-за этого я не могу использовать image_tag()
помощник Symfony, который добавляет .png
по умолчанию к имени файла, если не указано расширение ... Это способ отображения изображений в моем шаблоне:
if (strcmp($producto->foto, "SI") == 0) {
echo '<img src="/images/productos/'.$producto->id.'_muestra" width="102" height="84" alt="Imagen de muestra"/>';
} else {
echo '<img src="/images/no_picture.jpg" width="102" height="84" alt="Imagen de muestra"/>';
}
Странно то, что /images/no_picture.jpg
отображается отлично. Еще раз спасибо за любую помощь, вы можете дать мне !!!