apache - 在 apache 配置上使用查询字符串设置引用 header

标签 apache http apache2 referrer

我需要从查询字符串中获取一个参数,并将其设置在 Apache 配置文件的 referrer header 中。 你知道这是否可能吗?

我可以对 cookie 执行相同的操作,但我需要使用查询字符串来执行此操作。

setEnvIfNoCase ^Cookie$ "(referrer=\w*:\/\/\w*)" HTTP_MY_COOKIE=$1
setEnvIfNoCase HTTP_MY_COOKIE "(http:\/\/.*\.\w*)" REFERRER=$1
RequestHeader set Referer %{REFERRER}e

问候

最佳答案

解决方案非常简单。 setEnvIfNoCase 或 setEnvIf 无法使用查询字符串,因此无法使用我用于 cookie 的相同技巧,解决方案是 RewriteCond 与 RewriteRule 的组合,如下例所示:

RewriteCond %{QUERY_STRING} referrer=(.*)
RewriteRule ^/ - [env=REFERRER:%1]
RequestHeader set Referer %{REFERRER}e

我回答了我的问题,以便有相同问题的其他用户(如果存在)可以找到起点。

关于apache - 在 apache 配置上使用查询字符串设置引用 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20220059/

相关文章:

linux - 从端口 80 删除 nginx 并添加 apache

java - 无法停止ActiveMQ Producer?

java - 在 Android 中向 urlConnection 添加 header

linux - Apache2 sql注入(inject)规则未启动

tomcat - Apache/Tomcat 返回错误 503

Apache Unicode AuthName 字符串?

php - 调用未定义函数 'init_set'

php - 有没有一种从 PHP 脚本调用 CGI 脚本的好方法?

angular - 将项目从 Angular 5 迁移到 8 问题与 Response -> HttpResponse

http - "+"在HTTP Accept header 中意味着什么?