Coldfusion 2018 .htaccess 文件重写规则不适用于 .cfm 文件,Tomcat AJP13“重用设置为 false”

Coldfusion 2018 .htaccess 文件重写规则不适用于 .cfm 文件,Tomcat AJP13“重用设置为 false”

我在 /reports/ 文件夹中有一个 .htaccess 文件,其中包含以下规则:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.cfm?path=$1 [L,QSA]

/reports/ 文件夹中有一个 index.cfm,用于加载所有制造商的列表(如果未指定制造商)?path=

这是访问 URL 中包含 /make/ 的页面时收到的错误

HTTP Status 403 – Forbidden
Type Status Report
Description The server understood the request but refuses to authorize it.
Apache Tomcat/9.0.21

我在 CentOS 7 上安装 Apache 2.4。

我在服务器上有另一个站点,它在 vhost.conf 文件中使用 RewriteRule,并且在开发、暂存和生产过程中运行良好。

如果我将 RewriteRule 更改为此,它可以正常重定向。

RewriteRule ^(.*)$ https://google.co.uk [L,QSA]

如果我直接访问该页面(/reports/?path=BMW/),页面就可以正常加载。

我唯一能发现的是,当我尝试加载 BMW(或任何其他)报告时,mod_jk.log 出现此错误:

[warn] ajp_process_callback::jk_ajp_common.c (2245): (cfusion) AJP13 protocol: Reuse is set to false

此错误发生在 CF Update 10 上,但不发生在 Update 5 上(我的开发/登台服务器需要从 5 更新,当我这样做时,它们也开始像生产服务器一样出现故障)。有人知道“Reuse 设置为 false”是什么意思吗?这是否与阻止我的 RewriteRule 工作的事情有关?

我尝试搜索 Tomcat 源代码,但找不到“reuse 设置为 false”

我在 Tomcat 文档中找到了“DisableReuse”标志,但是在开发、暂存或生产服务器上找不到对此的提及。

我尝试设置JkOptions -DisableReuse/etc/httpd/conf/mod_jk.conf重新启动 Apache,但没有什么变化。

除了“重用设置为 false”日志条目之外,我找不到 2 个正常工作的服务器和无法重写为 CFM 页面的服务器之间的区别。

  • Coldfusion 2018,0,10,320417
  • 亚马逊 Coretto (Java) 11.0.8
  • Tomcat 9.0.21.0
  • Apache 2.4.6
  • Centos 7.7.1908

相关内容