将外部重写引擎与 Apache 一起使用



我想在我的前端服务器(apache)上运行重写引擎。

我添加了此配置

<If "-f 'PATH_TO_MY_LUA_SCRIPT'">
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteMap cust "prg:PATH_TO_MY_LUA_SCRIPT"
RewriteRule ^(.*)$ ${cust:%{REQUEST_URI}}" [QSA,L]
</IfModule>
</If>

阿帕奇RewriteMap not allowed here

PS:当然PATH_TO_MY_LUA_SCRIPT被完整路径替换(我的脚本是可执行的) 有没有人用Apache2.4使用外部重写lua scriupt?

当然,我忘记了精确。

这个 conf 不是在我的.htaccess中,而是在主 vhost 配置

请参阅RewriteMap文档

上下文:服务器配置、虚拟主机

Context意味着

上下文

这指示指令在服务器的配置文件中的位置是合法的。它是以下一个或多个值的逗号分隔列表:

  • 服务器配置 ...
  • 虚拟主机...
  • 目录。。。
  • .htaccess ...

该指令允许在指定的上下文中;如果你尝试在其他地方使用它,你会得到一个配置错误,要么阻止服务器在该上下文中正确处理请求,要么使服务器根本无法运行 - 即服务器甚至不会启动。

因此,您不能在 .htaccess 文件中使用RewriteMap,只能在主主机配置或虚拟主机配置中使用。


在这种情况下,If导致失败,因为

只有支持目录上下文的指令才能在此配置部分中使用。

RewriteMap不能在目录上下文中使用。因此,即使您在主主机或虚拟主机配置中拥有它,也不得在If指令中使用它。

最新更新