0

我有一个自定义上传字段,其内容类型允许上传 flv 文件。我的主题中有 jw player 可以为我播放。在我的本地主机中一切正常。但是上传后显示Access Denied or File not found Error.

我检查了文件夹的权限,似乎没问题。直接键入文件的链接也会返回找不到页面。

问题是什么?可以做什么?我尝试使用绝对 url print $base_url,也尝试使用print $base_path这两种方法在 localhost 中运行良好。

更新:甚至无法访问 image_cache 的缩略图或任何上传的图像。这有点奇怪。我想不通。

.htacess 在本地主机和服务器中是相同的。但为什么只在我无法访问的服务器中?我检查了所有尝试的日志及其显示 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
4

3 回答 3

0

检查以确保您将 .htaccess 文件上传到 Drupal 的根目录。

您的站点是在域的根目录还是在子目录中运行?如果它在子目录中,您可能需要在 .htaccess 文件中设置 RewriteBase。

检查管理 > 报告 > 状态报告页面以查看是否有任何错误消息。

检查管理 > 报告 > 最近的日志条目是否有任何其他错误。

于 2011-01-22T08:19:00.670 回答
0

您的文件目录中应该有另一个 htaccess。此文件中设置的任何权限都将覆盖在根级别设置的权限。作为替代方案,您可以设置 Drupal 来处理您的文件(私有文件系统选项)。请注意,将文件设置为私有会影响性能。

于 2011-01-22T09:47:01.453 回答
0

除了上述将/sites/default目录权限设置为 555 之外,还应将其修复为 404 或 403。

我也错过了

于 2017-07-02T23:55:49.237 回答