Directory

.htaccess 文件中的 Apache 選項

  • September 4, 2012

Options +FollowSymLinks -MultiViews在 .htaccess 文件中使用該文件,該文件儲存在圖像文件夾上方的 1 個文件夾中,但這會導致在通過 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 ):

curl -D headers.txt http://my_url.com

這會將響應標頭保存到 headers.txt,這將使您更好地了解實際情況。希望這足以為您指明解決方案。

引用自:https://serverfault.com/questions/424059