【问题标题】:how to set http header before custom handler on apache 2.2如何在 apache 2.2 上的自定义处理程序之前设置 http 标头
【发布时间】:2013-10-20 21:07:59
【问题描述】:

我在 apache 2.2 中有一个自定义模块,用于检查引荐来源标头并决定是放弃请求还是执行答案处理。 Apache 位于 cloudfront cdn 下,因此不会转发像 user-agent 和 referrer 这样的标头。

解决方案是在请求中添加一个带有引荐来源网址的 cookie,然后从 apache 端获取并使用它来覆盖引荐来源网址头。这可能吗?

总结一下,我将在 cookie 中获取自定义值,并将其放入引荐来源标头中,并在我们的自定义模块中处理它。

<VirtualHost *:80>
    RequestReadTimeout header=10-30,MinRate=500
    RewriteEngine On
    Header set Referer HTTP_COOKIE:referer 
    RequestHeader unset Authorization
    <Location /getobject>
            SetHandler getobject
    </Location>

我在浏览器上使用调试工具进行了测试,我确信 cookie 已发送到服务器。 我尝试了上面的示例,但它不起作用。有什么想法吗?

【问题讨论】:

    标签: apache cookies http-headers http-referer


    【解决方案1】:

    我可以自己回答 我可以通过 cookie 中的 javascript 在服务器上添加我需要的标头

    document.cookie="referrer="+window.parent.location;
    

    之后在我可以使用的服务器上

    SetEnvIfNoCase Cookie ^ $ "( referrer = \ w *: \ / \ / \ w *)" HTTP_MY_COOKIE = $ 1
    SetEnvIfNoCase HTTP_MY_COOKIE " (http : \ / \ / . * \ . \ w *)" Referrer = $ 1 
    <IfModule mod_headers.c>
      RequestHeader % { Referer } and Referrer
    </IfModule >
    

    【讨论】:

      猜你喜欢
      • 2013-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多