我Options +FollowSymLinks -MultiViews
在存储在图像文件夹上方 1 个文件夹中的 .htaccess 文件中使用,但这会导致在通过 URL 输出到页面时无法看到这些目录中的图像。一旦我从 .htaccess 中删除它,所有图像都可以正常显示。
这是我拥有的整个 .htaccess 文件:
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ http://%{HTTP_HOST}/ [R=301,L]
这有什么问题吗?<img>
导致在标签 src 属性中输出图像时根本不显示图像。
在实际图像目录中,我有另一个 .htaccess 文件,如下所示:
<FilesMatch "\.(jpg|jpeg|png|gif|bmp)$">
<IfModule mod_headers.c>
Header unset Pragma
FileETag None
Header unset ETag
Header set Cache-Control "max-age=864000, public, must-revalidate"
Header unset Last-Modified
</IfModule>
</FilesMatch>
也许有更好的选择可以让我在我的服务器上的文件夹中看到图像?老实说,我想知道到底是什么导致了这一切。
删除此行会导致任何安全风险吗? Options +FollowSymLinks -MultiViews
我可以简单地将它替换为: Options -Indexes
吗?
基本上,我仍然希望文件夹中的文件可以访问,但我不希望这样当浏览到文件夹的 URL 时,所有文件都显示在那里,如果你明白我的意思的话。另外,想知道是否可以这样做,以便它只接受来自我的服务器的文件,而不接受其他任何文件?如果这是可能的,甚至是有道理的......?
当我遇到这样的问题时,我做的第一件事就是查看返回的实际 HTTP 响应标头。
最简单的方法是使用 curl 命令 ( http://curl.haxx.se/download.html ):
这会将响应标头保存到 headers.txt,这应该让您更好地了解实际情况。希望这足以让您找到解决方案。