我有一个自定义上传字段,其内容类型允许上传flv文件。我的主题中有jw播放器,它为我播放。在我的localhost中一切正常。
但上传后会显示Access Denied or File not found Error.
我检查了文件夹的权限,似乎没问题。直接键入文件的链接也会返回找不到的页面。
有什么问题?可以做些什么?
我尝试使用print $base_url
使用绝对网址,并尝试使用print $base_path
,这两种方法在localhost中都能很好地工作。
更新:甚至无法访问image_cache的缩略图或任何上传的图片。这有点奇怪。我无法弄清楚这一点。
.htacess在localhost和server中是相同的。但为什么只有服务器我才能访问?我检查了 所有尝试的日志及其show pagenotfound错误。
我的.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
答案 0 :(得分:0)
检查以确保您将.htaccess文件上传到Drupal的根目录。
您的网站是在域的根目录还是在子目录中运行?如果它在子目录中,您可能需要在.htaccess文件中设置RewriteBase。
检查管理员&gt;报告&gt;状态报告页面,以查看是否有任何错误消息。
检查管理员&gt;报告&gt;任何其他错误的最近日志条目。
答案 1 :(得分:0)
你的文件目录中应该有另一个htaccess。此文件中设置的任何权限都将覆盖在根级别设置的权限。作为替代方案,您可以将Drupal设置为处理您的文件(私有文件系统选项)。请注意,将文件设置为私有会对性能产生影响。
答案 2 :(得分:0)
除了上述设置 / sites / default 目录之外,555的权限应该修复为404或403.
我也错过了