如果条件,如何在 apache 上运行一些代码或命令

Posted

技术标签:

【中文标题】如果条件,如何在 apache 上运行一些代码或命令【英文标题】:How to run some code or command on apache if condition 【发布时间】:2021-11-22 18:37:19 【问题描述】:

我有一个用例,如果在 http 请求中满足特定条件,我需要执行一些脚本或执行 linux 命令。我正在检查是否有任何 DELETE 方法请求来自 httpd 服务器,我想做一些工作,比如备份文件。我不确定如何使用 apache Web 服务器来做到这一点。但我知道 apache 中的 if 模块。

<If "%REQUEST_METHOD = DELETE">
    # excute script or linux command
</If>

请让我知道是否可以使用 apache。另外让我知道这是否可以在任何其他网络服务器中实现。

【问题讨论】:

【参考方案1】:

您可以在 Apache 上使用 mod_rewrite 根据请求的元素有条件地在内部将请求重写为服务器端脚本(php、CGI 等)。您不需要为此使用 &lt;If&gt; 表达式。

例如,要在内部将任何 DELETE 请求重写为您的脚本 /scripts/script-to-run.cgi,那么您可以使用以下内容:

RewriteEngine On

RewriteCond %REQUEST_METHOD =DELETE
RewriteRule !^/?scripts/ scripts/script-to-run.cgi [L]

RewriteRule 模式 !^?scripts/ 只是确保不会为对/scripts/ 目录本身的请求调用脚本(以避免重写循环)。

【讨论】:

以上是关于如果条件,如何在 apache 上运行一些代码或命令的主要内容,如果未能解决你的问题,请参考以下文章

如何配置 Apache 2 以运行 Perl CGI 脚本?

仅当上一步失败时如何在 Jenkins 中运行条件步骤

在 Apache Zeppelin 上运行独立的 python 脚本

mysql服务没启动,怎么网站还能运行

如何确保我的 Apache Spark 设置代码只运行一次?

在 Apache Tomcat 上运行 JSF 项目