无法访问服务器目录

无法访问服务器目录

我在直播服务器上遇到了一些奇怪的事情,但在本地服务器上却很正常。
我的本地服务器使用的是 mac,而我的直播服务器是 linux。

假设我尝试访问一些文件,
http://redddor.babonmultimedia.com/assets/images/map-1.jpg这工作正常。
http://redddor.babonmultimedia.com/assets/modules/evogallery/check.php返回 404,我很确定我的文件在那里,并且没有拼写错误。

它怎么会给我 404?

根服务器上只有一个.htaccess,其配置如下。

# For full documentation and other suggested options, please see
# http://svn.modxcms.com/docs/display/MODx096/Friendly+URL+Solutions
# including for unexpected logouts in multi-server/cloud environments
# and especially for the first three commented out rules

#php_flag register_globals Off
#AddDefaultCharset utf-8
#php_value date.timezone Europe/Moscow

Options +FollowSymlinks
RewriteEngine On
RewriteBase /

<IfModule mod_security.c>
SecFilterEngine Off
</IfModule>

# Fix Apache internal dummy connections from breaking [(site_url)] cache
RewriteCond %{HTTP_USER_AGENT} ^.*internal\ dummy\ connection.*$ [NC]
RewriteRule .* - [F,L]

# Rewrite domain.com -> www.domain.com -- used with SEO Strict URLs plugin
#RewriteCond %{HTTP_HOST} .
#RewriteCond %{HTTP_HOST} !^www\.example\.com [NC]
#RewriteRule (.*) http://www.example.com/$1 [R=301,L]

# Exclude /assets and /manager directories and images from rewrite rules
RewriteRule ^(manager|assets)/*$ - [L]
RewriteRule \.(jpg|jpeg|png|gif|ico)$ - [L]

# For Friendly URLs
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

# Reduce server overhead by enabling output compression if supported.
#php_flag zlib.output_compression On
#php_value zlib.output_compression_level 5

答案1

此处的规则:

RewriteRule ^(manager|assets)/*$ - [L]

需要看起来像这样:

RewriteRule ^(manager|assets)/ - [L]

你的正则表达式是仅有的匹配 URI 的/manager//assets/,而不是类似的东西,/assets/modules/evogallery/check.php因为/*$末尾的表示不再有目录,只有斜杠。图像 URL 有效,因为此规则之后的规则排除了所有图像。

答案2

这是因为 CHMOD,在某些服务器中我们不允许文件夹使用 777,而应该是 755。
将所有文件夹的 CHMOD 更改为 755 即可解决问题。

相关内容