Не могу получить доступ к загруженным файлам (FLV и изображения) в Drupal - PullRequest
0 голосов
/ 22 января 2011

У меня есть настраиваемое поле загрузки с типом контента, который позволяет загружать FLV-файлы. И у меня есть JW Player в моей теме, которая играет для меня. Все отлично работает в моем localhost. Но после загрузки это показывает Access Denied or File not found Error.

Я проверил разрешение папки с файлами, похоже, все в порядке. Прямой ввод ссылки на файл также возвращает страницу не найденную.

В чем проблема? Что можно сделать? Я попытался с абсолютным URL, используя print $base_url, а также попытался с print $base_path, оба из которых работают очень хорошо в localhost.

Обновление: даже эскиз image_cache или любые загруженные изображения недоступны. Это немного странно. Я не могу понять это.

.htacess одинаков для локального хоста и сервера. Но почему только в сервер я не могу получить доступ? Я проверил журнал и его показ pagenotfound error для всех попыток.

Мой файл .htaccess:

> #
> # Apache/PHP/Drupal settings:
> #
> # Protect files and directories from prying eyes. <FilesMatch
> "\.(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl|svn-base)$|^(code-style\.pl|Entries.*|Repository|Root|Tag|Template|all-wcprops|entries|format)$">
> Order allow,deny </FilesMatch>
> # Don't show directory listings for URLs which map to a directory. Options
> -Indexes
> 
> 
> 
> # Make Drupal handle any 404 errors. ErrorDocument 404 /index.php
> 
> # Force simple error message for requests for non-existent favicon.ico.
> <Files favicon.ico>   # There is no
> end quote below, for compatibility
> with Apache 1.3.   ErrorDocument 404
> "The requested file favicon.ico was
> not found. </Files>
> 
> # Set the default handler. DirectoryIndex index.php
> 
> # Override PHP settings. More in sites/default/settings.php
> # but the following cannot be changed at runtime.
> 
> # PHP 4, Apache 1. <IfModule mod_php4.c>   php_value
> magic_quotes_gpc                0  
> php_value register_globals            
> 0   php_value session.auto_start      
> 0   php_value mbstring.http_input     
> pass   php_value mbstring.http_output 
> pass   php_value
> mbstring.encoding_translation   0
> </IfModule>
> 
> # PHP 4, Apache 2. <IfModule sapi_apache2.c>   php_value
> magic_quotes_gpc                0  
> php_value register_globals            
> 0   php_value session.auto_start      
> 0   php_value mbstring.http_input     
> pass   php_value mbstring.http_output 
> pass   php_value
> mbstring.encoding_translation   0
> </IfModule>
> 
> # PHP 5, Apache 1 and 2. <IfModule mod_php5.c>   php_value
> magic_quotes_gpc                0  
> php_value register_globals            
> 0   php_value session.auto_start      
> 0   php_value mbstring.http_input     
> pass   php_value mbstring.http_output 
> pass   php_value
> mbstring.encoding_translation   0
> </IfModule>
> 
> # Requires mod_expires to be enabled. <IfModule mod_expires.c>   # Enable
> expirations.   ExpiresActive On
> 
>   # Cache all files for 2 weeks after
> access (A).   ExpiresDefault A1209600
> 
>   <FilesMatch \.php$>
>     # Do not allow PHP scripts to be cached unless they explicitly send
> cache
>     # headers themselves. Otherwise all scripts would have to overwrite
> the
>     # headers set by mod_expires if they want another caching behavior.
> This may
>     # fail if an error occurs early in the bootstrap process, and it may
> cause
>     # problems if a non-Drupal PHP file is installed in a subdirectory.
>     ExpiresActive Off   </FilesMatch> </IfModule>
> 
> # Various rewrite rules. <IfModule mod_rewrite.c>   RewriteEngine on
> 
>   # If your site can be accessed both
> with and without the 'www.' prefix,
> you   # can use one of the following
> settings to redirect users to your
> preferred   # URL, either WITH or
> WITHOUT the 'www.' prefix. Choose ONLY
> one option:   #   # To redirect all
> users to access the site WITH the
> 'www.' prefix,   #
> (http://example.com/... will be
> redirected to
> http://www.example.com/...)   # adapt
> and uncomment the following:   #
> RewriteCond %{HTTP_HOST}
> ^example\.com$ [NC]   # RewriteRule
> ^(.*)$ http://www.example.com/$1
> [L,R=301]   #   # To redirect all
> users to access the site WITHOUT the
> 'www.' prefix,   #
> (http://www.example.com/... will be
> redirected to http://example.com/...) 
> # uncomment and adapt the following:   # RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]   #
> RewriteRule ^(.*)$
> http://example.com/$1 [L,R=301]
> 
>   # Modify the RewriteBase if you are
> using Drupal in a subdirectory or in a
> # VirtualDocumentRoot and the rewrite rules are not working properly.   #
> For example if your site is at
> http://example.com/drupal uncomment
> and   # modify the following line:   #
> RewriteBase /drupal   #   # If your
> site is running in a
> VirtualDocumentRoot at
> http://example.com/,   # uncomment the
> following line:   # RewriteBase /
> 
>   # Rewrite URLs of the form 'x' to
> the form 'index.php?q=x'.  
> RewriteCond %{REQUEST_FILENAME} !-f  
> RewriteCond %{REQUEST_FILENAME} !-d  
> RewriteCond %{REQUEST_URI}
> !=/favicon.ico   RewriteRule ^(.*)$
> index.php?q=$1 [L,QSA] </IfModule>
> 
> # $Id: .htaccess,v 1.90.2.5 2010/02/02 07:25:22 dries Exp $

.htacess в каталоге файлов:

> SetHandler
> Drupal_Security_Do_Not_Remove_See_SA_2006_006
> Options None Options -FollowSymLinks

Ответы [ 3 ]

0 голосов
/ 22 января 2011

В вашем каталоге файлов должен быть другой htaccess. Любые разрешения, установленные в этом файле, переопределяют те, которые установлены на корневом уровне. В качестве альтернативы вы можете настроить Drupal для обработки ваших файлов (опция приватной файловой системы). Имейте в виду, что установка приватных файлов будет влиять на производительность.

0 голосов
/ 03 июля 2017

В дополнение к вышеприведенному. Установка разрешения каталога / sites / default на 555 должна исправить его либо на 404, либо на 403.

Я тоже это пропустил

0 голосов
/ 22 января 2011

Убедитесь, что вы загрузили файл .htaccess в корневой каталог Drupal.

Работает ли ваш сайт в корне домена или в подкаталоге?Если он находится в подкаталоге, вам может потребоваться установить RewriteBase в файле .htaccess.

Проверьте страницу Admin> Отчеты> Отчеты о состоянии , чтобы увидеть, есть ли какие-либо сообщения об ошибках.

Проверьте Администратор> Отчеты> Последние записи журнала на наличие дополнительных ошибок.

...