Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么某些请求会出现HTTP 501错误?_Php_Apache_.htaccess_Http_Http Headers - Fatal编程技术网

Php 为什么某些请求会出现HTTP 501错误?

Php 为什么某些请求会出现HTTP 501错误?,php,apache,.htaccess,http,http-headers,Php,Apache,.htaccess,Http,Http Headers,我为自己编写了一个简单的webapp,当我在一个只允许http和https端口的地方时,可以编辑服务器上的文件 但我遇到了一个奇怪的问题 通常在保存文件时交换这些标题(机密信息已删除): https://example.com/? 邮政/?HTTP/1.1 主持人:example.com 用户代理:Mozilla/5.0(Windows NT 6.1;rv:36.0)Gecko/20100101 Firefox/36.0 接受:text/html、application/xhtml+xml、ap

我为自己编写了一个简单的webapp,当我在一个只允许http和https端口的地方时,可以编辑服务器上的文件

但我遇到了一个奇怪的问题

通常在保存文件时交换这些标题(机密信息已删除):

https://example.com/?
邮政/?HTTP/1.1
主持人:example.com
用户代理:Mozilla/5.0(Windows NT 6.1;rv:36.0)Gecko/20100101 Firefox/36.0
接受:text/html、application/xhtml+xml、application/xml;q=0.9,*/*;q=0.8
接受语言:胡胡,恩美国;q=0.8,胡;q=0.5,en;q=0.3
接受编码:gzip,deflate
DNT:1
推荐人:https://example.com/?path=/home/csirmazd/public_html/[…]/fs/view/login.php&view=preview
曲奇:[……]
连接:保持活力
内容类型:application/x-www-form-urlencoded
内容长度:644
[...]
HTTP/1.1 303见其他
日期:2015年3月28日星期六14:57:40 GMT
服务器:Apache/2.2.29(Unix)mod_ssl/2.2.29 OpenSSL/1.0.1e-fips mod_bwlimited/1.4
X-Powered-By:PHP/5.4.36
到期时间:1981年11月19日星期四格林威治标准时间08:52:00
缓存控制:无存储,无缓存,必须重新验证,后检查=0,预检查=0
Pragma:没有缓存
位置:?path=/home/csirmazd/public_html/[…]/fs/view/login.php&view=preview
内容长度:0
保持活动状态:超时=5,最大=100
连接:保持活力
内容类型:text/html
----------------------------------------------------------
https://example.com/?path=/home/csirmazd/public_html/[…]/fs/view/login.php&view=preview
GET/?path=/home/csirmazd/public_html/[…]/fs/view/login.php&view=preview HTTP/1.1
主持人:example.com
用户代理:Mozilla/5.0(Windows NT 6.1;rv:36.0)Gecko/20100101 Firefox/36.0
接受:text/html、application/xhtml+xml、application/xml;q=0.9,*/*;q=0.8
接受语言:胡胡,恩美国;q=0.8,胡;q=0.5,en;q=0.3
接受编码:gzip,deflate
DNT:1
推荐人:https://example.com/?path=/home/csirmazd/public_html/[…]/fs/view/login.php&view=preview
曲奇:[……]
连接:保持活力
HTTP/1.1200ok
日期:2015年3月28日星期六14:57:40 GMT
服务器:Apache/2.2.29(Unix)mod_ssl/2.2.29 OpenSSL/1.0.1e-fips mod_bwlimited/1.4
X-Powered-By:PHP/5.4.36
到期时间:1981年11月19日星期四格林威治标准时间08:52:00
缓存控制:无存储,无缓存,必须重新验证,后检查=0,预检查=0
Pragma:没有缓存
保持活动状态:超时=5,最大=99
连接:保持活力
传输编码:分块
内容类型:text/html;字符集=utf-8
----------------------------------------------------------
但当我试图保存另一个特定文件,即dir.php时,情况有所不同:

https://example.com/?
邮政/?HTTP/1.1
主持人:example.com
用户代理:Mozilla/5.0(Windows NT 6.1;rv:36.0)Gecko/20100101 Firefox/36.0
接受:text/html、application/xhtml+xml、application/xml;q=0.9,*/*;q=0.8
接受语言:胡胡,恩美国;q=0.8,胡;q=0.5,en;q=0.3
接受编码:gzip,deflate
DNT:1
推荐人:https://example.com/?path=/home/csirmazd/public_html/[…]/fs/view/dir.php&view=preview
曲奇:[……]
连接:保持活力
内容类型:application/x-www-form-urlencoded
内容长度:4604
[...]
HTTP/1.1 501方法未实现
日期:2015年3月28日星期六15:03:04 GMT
服务器:Apache/2.2.29(Unix)mod_ssl/2.2.29 OpenSSL/1.0.1e-fips mod_bwlimited/1.4
允许:跟踪
内容长度:458
连接:关闭
内容类型:text/html;字符集=iso-8859-1
X-Pad:避免浏览器错误
----------------------------------------------------------
浏览器中的消息是

GET to / not supported.
什么?那为什么它对其他一切都有效呢

根本不调用底层PHP代码

首先,我认为这是一辆马车。但是如果我记得的话,我禁用了它,在根目录中启用了一个
重写引擎。所以我认为这不是问题所在。(它仍然通过调用index.php来处理example.com/)

我的第二个想法是,POST请求的最大大小非常小。但我可以编辑更大的文件,没有问题

现在我没有主意了,我不知道去哪里找


有什么想法吗?

问题的根源似乎是托管提供商在Apache服务器上安装的ModSecurity模块

作为

因此,我尝试了一个实验,将相同的内容发布到一个随机URI中,得到了与以前相同的错误。显然,当您提交表单中的代码时,这件事是不喜欢的

因此,显而易见的解决办法是关掉它

在我的特殊情况下,我的cPanel中没有关闭它的选项,因此我通过在客户端对表单内容进行base64编码来绕过它