【发布时间】:2018-03-22 12:06:42
【问题描述】:
我有下面的代码,我可以用下面的代码来设置一个变量:
SetEnvIf Host (.*) custom_host=$1
我想要的是请求主机/计算机的变量。
例如,如果网站http://example.com:32/welcome 正在发出请求,我希望它作为变量吗?
【问题讨论】:
我有下面的代码,我可以用下面的代码来设置一个变量:
SetEnvIf Host (.*) custom_host=$1
我想要的是请求主机/计算机的变量。
例如,如果网站http://example.com:32/welcome 正在发出请求,我希望它作为变量吗?
【问题讨论】:
您需要Referer 而不是Host 来访问请求中发送的HTTP Referer 标头。例如:
SetEnvIf Referer (.*) custom_referer=$1
但是,根据您使用的服务器端脚本语言,您很少需要将其分配给另一个变量。您通常可以根据需要直接引用它。
另请注意,可能未设置 HTTP Referer 标头。引用站点和用户的浏览器都可以阻止此操作。
更新:
我怎么能只有协议、域和主机没有路径。
尝试将正则表达式更改为:
SetEnvIf Referer ^(https?://[^/]+) custom_referer=$1
如果Referer 是http://example.com:32/welcome,那么这将导致http://example.com:32 被存储在custom_referer 变量中。
【讨论】: