Luar's Flash Playground:Flash Upload與Http Error 400 Bad Request奇怪問題
Flash Upload與Http Error 400 Bad Request奇怪問題 (09-02-2008)

上一篇,另一個奇怪問題,Flash Upload無法上傳問題。眾所周知,Flash Upload是Flash Player 8開始支援的功能,不過,可以說是一個問題多多,功能不全的雞肋功能。昨天將本地測試沒有問題的東西Upload到客戶Server,當測試時,發現不能Upload,所有Upload東西都被擋了,出現HTTP Error 400 Bad Request。

我第一個反應,難道是Server不支援帶參數的路徑?因為Flash Upload功能不全,Upload檔案時,是不能帶其他參數,所以人們解決方法是將參數加在路徑上,以Get方式傳送,例如:

upload.php?userid=1

我立即用一個簡單Flash Upload Sample,不帶參數到客戶Server測試,結果也是一樣,再試Upload到一個錯誤不存在路徑,都被擋了,證明不是程式問題,是Apache上問題。

一直知道Flash Upload在Apache上有可能出現HTTP Error 403問題,因為Flash Upload的數據Header,格式不正確(至今Adobe都不去解決),被裝了mod_security的Apache當作非法侵入數據擋了。網上流傳同一個解決方法,在.htaccess加上來停止mod_security:

SecFilterEngine Off
SecFilterScanPOST Off

我的問題是HTTP Error不是403,是400,再加上以上兩句,整個網站出現Internal Server Error 500(已經設定了Options FollowSymLinks和AllowOverride all),於是不往mod_security方面想,繼續Google,發現根本沒有人遇到HTTP Error 400問題。

反復閱讀客戶Server的httpd.conf和它引用了module,發現它真的用了mod_security,先不要Apache load mod_security這東西,Flash Upload就操作正常了!

好了,但是為什麼在.htaccess層面不能停止mod_security它?最後我要在Virtual Host 的conf檔案加上SecRuleEngine Off才可以停止它。

本文章由發表。
意見
"; print "沒有意見。
 "; } ?>
  • hi,luar。我把您加到了我的友链中。因为一直很尊敬您,而且今天我在写这篇日志( http://www.mepine.com/?p=23 )时候搜索到了您的“《無間道3》中的RIA”一文,发现与您的想法竟完全相同。感到很荣幸,并且希望您有时间对我的文章进行批评指正。

    MePine於11-02-2008發表

同組文章