Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ApacheHTTP服务器中如何基于请求URL进行过滤_Apache_Apache2_Httpserver_Apache2.4_Apache2 Module - Fatal编程技术网

ApacheHTTP服务器中如何基于请求URL进行过滤

ApacheHTTP服务器中如何基于请求URL进行过滤,apache,apache2,httpserver,apache2.4,apache2-module,Apache,Apache2,Httpserver,Apache2.4,Apache2 Module,我希望在我的应用程序和客户端之间有一个apache http服务器 客户端访问时必须传递查询参数。 例如,如果我的客户机正在运行,那么只能通过传递参数myparam来访问它。喜欢 因此,在我的ApacheHTTP服务器中,我想过滤不包含查询参数myparam的请求 我试着用它。它有一些预定义的过滤器,但没有一个过滤器满足我的要求。 我试着用它。但似乎整个内容都被传递给了我的程序,而不是URL。因为我需要根据URL中的参数进行过滤,所以我认为它不能满足我的要求 是否有任何http服务器模块可用于根

我希望在我的应用程序和客户端之间有一个apache http服务器

客户端访问时必须传递查询参数。 例如,如果我的客户机正在运行,那么只能通过传递参数myparam来访问它。喜欢

因此,在我的ApacheHTTP服务器中,我想过滤不包含查询参数myparam的请求

我试着用它。它有一些预定义的过滤器,但没有一个过滤器满足我的要求。 我试着用它。但似乎整个内容都被传递给了我的程序,而不是URL。因为我需要根据URL中的参数进行过滤,所以我认为它不能满足我的要求

是否有任何http服务器模块可用于根据URL中传递的参数进行筛选

编辑


此外,我还需要从queryparam中获取值并对其进行验证。验证是一个REST服务调用,在2.4中,您可以执行以下简单操作:

<Location /myapp>
  Require expr %{QUERY_STRING} =~ /myparam/
</location>
但是(如果在后面的评论中讨论)您需要从某种远程web服务检索映射,您需要在httpd内部实现一个C或Lua模块。其中最困难的部分是检索远程响应,其他部分则微不足道:


您可以编写自己的access\u checker模块来查找r->uri和 r->args非常容易。但是您需要自己的http客户机来创建 传出REST调用——核心中没有用于此调用的API考文纳 8月24日13:27


重写示例需要修改以允许查询字符串中有更多内容,现在它是一个精确匹配。我需要从查询参数中获取值并验证它。验证是一个REST服务调用。我该怎么做?yikes,是时候买Nick Kew的Apache模块书了。你可以编写自己的access\u checker模块,很容易找到r->uri和r->args。但是您需要自己的http客户端来进行传出的REST调用——核心中没有用于此的API。您可以用上面的注释更新答案吗。我认为答案如上述评论中所述,如果在答案中出现,将非常有用
RewriteMap foo txt:/tmp/rewrite.map
RewriteEngine ON
# Fancy way to check two variables are equal in a RewriteCond
RewriteCond %{QUERY_STRING},${foo:$1} !^([^,]+),\1
# grab the first segment
RewriteRule ^/([^/]+)/ - [F]