apache忽略文件後綴

 最近測試一個遊戲項目的資源文件,發現一個apache忽略文件後綴導致的問題

 
可以訪問 http://10.0.0.18/logXML/ini78
可以訪問 http://10.0.0.18/logXML/ini78.xml
 
不能訪問 http://10.0.0.16/logXML/ini78
可以訪問 http://10.0.0.16/logXML/ini78.xml
 
經過查找發現是這個 Options Indexes FollowSymLinks MultiViews 導致的
 
Multiviews
MultiViews是一個針對每個目錄的選項,也就是說可以在httpd.conf或.htaccess(如果正確設置了AllowOverride)文件中的<Directory>、<Location>、<Files>配置段中,用Options指令來指定。注意,Options All 並不會設置MultiViews ,你必須明確地指定。
 
MultiViews的效果是:如果服務器收到對/some/dir/foo的請求,而/some/dir/foo並不存在,但是如果/some/dir啓用了MultiViews ,則服務器會查找這個目錄下所有的foo.* 文件,並有效地僞造一個說明這些foo.* 文件的類型表,分配給他們相同的媒體類型及內容編碼,並選擇其中最合適的匹配返回給客戶。
 
MultiViews還可以在服務器檢索一個目錄時,用於DirectoryIndex指令搜索的文件名。如果設置了:
 
DirectoryIndex index
而index.html和index.html3並存,則服務器會作一個權衡;如果都沒有,但是有index.cgi ,則服務器會執行它。
 
如果一個目錄中沒有任何文件具有mod_mime可以識別的表示其字符集、內容類型、語言和編碼的後綴,那麼其結果將取決於MultiViewsMatch指令的設置,這個指令決定了在MultiViews協商中將使用的處理器、過濾器和其他後綴類型。
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章