如果条件,如何在 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 等)。您不需要为此使用 <If>
表达式。
例如,要在内部将任何 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 脚本?
在 Apache Zeppelin 上运行独立的 python 脚本