Apache 2 发布 xml 文件失败 404 506

Apache 2 发布 xml 文件失败 404 506

在尝试复制 Apple Airscan 协议时,我在 POSTed 文件上传时收到此错误。这是从 Mopria Android 客户端到 Apache 服务器的,因此我无法在客户端更改任何内容。

192.168.0.8 - - [16/May/2019:02:11:19 -0500] "POST /eSCL/ScanJobs 
HTTP/1.1" 404 506 "-" "okhttp/3.9.1"

我甚至将 /eSCL/ScanJobs 的权限设置为 777

404 未找到 506 指的是空格

服务器版本:Apache/2.4.18(Ubuntu)

到目前为止,我已经为此受尽了折磨,现在离解决这样的小问题已经很近了,但仍然遥不可及

需要在 apache2.conf 中更改某些内容以允许上传,还是更改权限就足够了?到目前为止,我还没有构建任何内容来处理文件,但我认为它应该发布

以下是附加信息:原始帖子之后------------------------

感谢您确认这是来自日志文件。

服务器根目录是 /var/www/html 错误指的是 /var/www/html/eSCL/SanJobs,它是一个有效目录,拥有 www-data 的所有权(适用于 Ubuntu Linux)并具有 777 权限。

我没有发现任何配置错误,因为主 index.php 位于 /var/www/html 并且加载正确

这几乎是 ubuntu linux 上的默认安装,安装在本地主机上。

该 POST 来自 Mopria Android 客户端

我已将以下内容添加到 Apache2.conf 中,以处理没有尾部斜杠且没有重定向的情况

<Directory /var/www/>
   <IfModule mod_rewrite.c>
      RewriteEngine On
      RewriteCond %{REQUEST_FILENAME}.php -f
      RewriteRule (.*) $1.php [L]
      RewriteCond %{REQUEST_FILENAME}.xml -f
      RewriteRule (.*) $1.xml [L]
  </IfModule>
    Options FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

还有一个 .htaccess 文件,内容如下:

DirectorySlash Off
#RewriteOptions AllowNoSlash

这让我不禁想问,我必须做什么才能解析 POST 请求?我的意思是我知道我稍后会使用 PHP 来解析它,但我想在继续之前获取文件。该文件仍应以 POST 形式发送而无需任何处理,对吗?

答案1

192.168.0.8 - - [16/May/2019:02:11:19 -0500] "POST /eSCL/ScanJobs HTTP/1.1" 404 506 "-" "okhttp/3.9.1"

这是扩展日志格式的日志行http://httpd.apache.org/docs/current/mod/mod_log_config.html

该日志条目中的 404 确实是“文件未找到”错误响应。

这意味着,相对于 DocumentRoot您在 Apache 中配置时,/eSCL/ScanJobs找不到该文件。通常,DocumentRoot 类似于/var/www/html ,请求的文件映射到/var/www/html/eSCL/ScanJobs

506的是 apache 响应请求发送的字节数(一段文字说明错误 404: 文件未找到”大概)。

需要在 apache2.conf 中更改一些内容以允许上传,还是更改权限就足够了?

HTTP Post 请求无法通过静态内容进行解析,需要脚本或可执行文件来处理它们。由于ScanJobs没有文件扩展名,Apache 无法知道该文件是 PHP 脚本、Perl 脚本、可执行文件还是其他文件。您需要相应地配置 Apache。

相关内容