我想在我的前端服务器(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
指令中使用它。