尝试发送此表单时,我从所有浏览器中得到这种奇怪的行为。此表单只有2个字段,标题和文章正文。表单默认为application / x-www-form-urlencoded。提交时,网站有时会回复404。
以下日志直接来自Live HTTP Headers。
http://www.faulty-domain.com/article-page POST /article-page HTTP/1.1 Host: www.faulty-domain.com User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.23) Gecko/20110920 Firefox/3.6.23 ( .NET CLR 3.5.30729) Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 115 Connection: keep-alive Referer: http://www.faulty-domain.com/article-page Content-Type: application/x-www-form-urlencoded Content-Length: 3288 blog_title=Article+Title+to+save&newsbody=%3Cp%3EThe+current+blah+blah+blah%3C%2Fp%3E HTTP/1.1 302 Found Date: Tue, 08 Nov 2011 12:42:23 GMT Server: Apache/2.0.63 (Unix) mod_ssl/2.0.63 OpenSSL/0.9.8e-fips-rhel5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.14 X-Powered-By: PHP/5.2.14 Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Location: http://www.faulty-domain.com/notFound Content-Encoding: gzip Vary: Accept-Encoding Content-Length: 26 Connection: close Content-Type: text/html
页面试图发送给自己,然后假设检查方法是否发布和各种验证检查,通常的东西。但是,http响应是404未找到的页面。
我们的内部框架与Code Igniter类似,因此所有请求都将执行index.php。很明显,Web服务器甚至没有尝试执行index.php,但根据请求标题决定响应应该是404.
现在我已完成自己的调试,并播放了我发送的文章。我试图逐段追加文章,看看bug触发的段落。表格提交罚款直到某个段落,此时我说Bingo!我以为我已经解决了问题并尝试单独使用该段落提交表单,但随后提交了表单。现在让我感到困惑的是,为什么Web服务器会接受它,但如果附加在原始文章的末尾,那就太疯狂了!
它可能是一个htaccess的东西,或者是一个Web服务器的东西,但我无法将这个东西固定。
更新
对于那些要求查看正在发送的帖子数据的人,这是一个链接。我将在一周左右后删除该文件。 http://www.globalpropertyguide.com/temp/faulty-article.html
这是一部可能有帮助的htaccess。基本上我们的index.php根据$ mod接收的值确定要调用的控制器。
RewriteRule ^([^/]+)/$ /$1 [R]
RewriteCond %{QUERY_STRING} !mod= [NC]
RewriteRule ^([^/]+)$ /index.php?mod=$1 [L]
此外,如果它可能有所帮助,这是登录apache error_log
的错误"POST /write-article HTTP/1.1" 302 26 "http://www.faulty-domain.com/write-article" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.24) Gecko/20111103 Firefox/3.6.24 ( .NET CLR 3.5.30729)"
"GET /notFound HTTP/1.1" 404 7635 "http://www.faulty-domain.com/write-article" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.24) Gecko/20111103 Firefox/3.6.24 ( .NET CLR 3.5.30729)"
答案 0 :(得分:0)
你必须找出谁重定向你,以及为什么。如果你只是简单地用你试图发布错误的身体来更新你的问题,并且接受一个相同大小的身体,那将会非常有帮助。
它可能发生在PHP中。可能存在某种检查长度或坏词的错误重定向。也可能有某种类似的Apache插件活动也是如此。