404 错误 - Restful webservice 被错误地视为 perl 文件

404 错误 - Restful webservice 被错误地视为 perl 文件

我有基于 restful webservices 的 webapps,运行于 Centos 6 上的 Apache httpd + mod_jk + Tomcat 6 + Jersey。

webservice urls 格式如下:

http://<ip-addr>/application/domain/<domain-name>/user/<user-id>?properties=<propertyname>

在正常情况下,Web 服务可以正常工作。但是,如果用户 ID 的值以 .pl 结尾,则会出现 404 错误。

例如。

http://192.168.0.17/application/domain/test.dom/user/amol.pl?properties=firstname

在 httpd error_log 中,我收到错误:文件不存在:amol.pl

因此看起来 httpd 并没有将请求转发给 tomcat,而是在寻找文件 amol.pl。

我直接在 tomcat 上执行了 web 服务

http://192.168.0.17:8080/application/domain/test.dom/user/amol.pl?properties=firstname.

它工作正常。

我不是 apache httpd 配置方面的专家,因此在 google 的帮助下,我尝试了一些随机技巧来告诉 httpd 忽略 .pl 文件,但无法使其正常工作。

以下事情不起作用:

  • 从 /etc/mime.types 文件中删除“application/x-perl pl”行。
  • 将 ExecCGI 更改为 -ExecCGI。
  • 从 /etc/httpd/conf.d 中删除 perl.conf 文件
  • 添加明确行 JkMount /application/*.pl ajp13

但现在的问题是我无法忽略 .pl 文件,因为我们确实有一些 .pl 文件。

httpd.conf 可在 处获得http://pastebin.com/PKwutE1H

虚拟主机配置文件位于http://pastebin.com/gNMEyuMh

我是否正确理解了问题出在 httpd 配置上?该问题是否可以在 httpd 级别解决?

相关内容