【发布时间】:2011-12-26 03:03:33
【问题描述】:
在尝试发送此表单时,我从所有浏览器中都得到了这种奇怪的行为。此表单只有 2 个字段,一个标题和文章正文。表单默认为 application/x-www-form-urlencoded。提交时,网站有时会以 404 响应。
下面的日志直接取自 Live HTTP Headers。
http://www.faulty-domain.com/article-page POST /article-page HTTP/1.1 主机:www.faulty-domain.com 用户代理: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) 接受:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 接受语言:en-us,en;q=0.5 接受编码:gzip,deflate 接受字符集:ISO-8859-1,utf-8;q=0.7,*;q=0.7 保活:115 连接:保持活动 参考:http://www.faulty-domain.com/article-page 内容类型:application/x-www-form-urlencoded 内容长度:3288 blog_title=文章+标题+to+save&newsbody=%3Cp%3EThe+current+blah+blah+blah%3C%2Fp%3E 找到 HTTP/1.1 302 日期:格林威治标准时间 2011 年 11 月 8 日星期二 12:42:23 服务器: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 到期:1981 年 11 月 19 日星期四 08:52:00 GMT 缓存控制:无存储、无缓存、必须重新验证、后检查 = 0、预检查 = 0 Pragma:无缓存 位置:http://www.faulty-domain.com/notFound 内容编码:gzip 变化:接受编码 内容长度:26 连接:关闭 内容类型:text/html
页面尝试发送给自己,然后假设检查方法是否已发布和各种验证检查,通常的东西。但是,http 响应是一个 404 not found 页面。
我们的内部框架像 Code Igniter 一样工作,所有的请求都会执行 index.php。显然,Web 服务器甚至没有尝试执行 index.php,而是根据请求标头以某种方式决定响应应该是 404。
现在我已经完成了自己的调试,并开始使用我发送的文章。我尝试逐段附加文章,并查看错误触发的段落。表单提交很好,直到某个段落,那时我说宾果!我以为我隔离了问题并尝试仅使用该段落提交表单,但随后提交了表单。现在让我感到困惑的是,为什么网络服务器会按原样接受它,但如果附加在原始文章的末尾,那就太疯狂了!
这可能是一个 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)"
【问题讨论】:
-
@Phil,确实,但是如果我们仔细查看响应头部分,位置是一个未找到的页面。我想,当服务器确定请求有问题时,它会将请求重定向到 404。我可能是错的。
-
.htaccess 是什么样的?框架是否有可能是启动重定向的框架? “像 Code Igniter 这样的作品”并没有太多可取之处。
-
@nachito,我添加了一些可能有助于进一步解决问题的信息
标签: php .htaccess encoding apache2