根据apache http服务器中的Request Header验证传入请求

我们在weblogic应用服务器上运行了一个Web应用程序(
JQuery和Spring).应用服务器前面有一个apache http服务器.

所有传入的请求都将通过Web服务器到达应用服务器.

现在我们要求我们必须验证传入的http请求标头中的值,如果存在,则必须将请求发送到应用服务器.如果不是,我们阻止请求,然后向最终用户显示静态错误页面.

我想知道我们是否可以在apache http服务器中实现这个逻辑.请指教.

最佳答案 你可以用mod_rewrite做到这一点.您没有包含您的确切设置,但如果您有mod_proxy类型配置,您只需要确保重写不会干扰正常流量的传递.在一般意义上,在您的Apache配置中,您将:

>打开重写
>检查情况
>根据条件应用重写规则

举一个非常简单的例子,如果你在查询字符串中寻找一个键,并禁止访问(403),如果它不存在,你会做这样的事情:

RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} !somekey
RewriteRule ^.*$- [F,L]

这可能会像您希望的那样复杂,您可以将条件链接在一起(隐式AND或显式或带有[OR]标志)并且您可以提供实际页面而不是禁止消息.

与往常一样,在修补之前备份您的配置,并且使用.htaccess进行测试可能是个好主意(尽管出于性能原因,最好将其移动到生产负载的实际配置中).

重写文档也是一个很好的资源:

http://httpd.apache.org/docs/current/mod/mod_rewrite.html

这真的是非常好的文档.对于某些指针 – 你需要查找标志([L] = last; [P] =视为代理请求; [F] =禁止等等)你需要一个熟悉正则表达式语法的人

点赞