2017-10-10 27 views
3

我有下面的代码,我可以使用下面的设置一个变量:获取请求主机Apache htaccess的变量?

SetEnvIf Host (.*) custom_host=$1 

我要的是请求的主机/计算机的变量。

例如,如果网站http://example.com:32/welcome正在提出请求,我希望将此作为变量?

回答

0

而不是Host您需要Referer来访问请求中发送的HTTP Referer标头。例如:

SetEnvIf Referer (.*) custom_referer=$1 

但是,根据您使用的服务器端脚本语言,您很少需要将此分配给另一个变量。您通常可以根据需要直接引用它。

另请注意,可能未设置HTTP Referer标头。推介网站和用户的浏览器都可以阻止这一点。

UPDATE:

我怎么刚才的协议,域名和主机不带路径。

尝试改变正则表达式是这样的:

SetEnvIf Referer ^(https?://[^/]+) custom_referer=$1 

如果Refererhttp://example.com:32/welcome,那么这将导致刚刚http://example.com:32存储在custom_referer变量。

+0

工作,但是我意识到CORS匹配失败,因为它有在那里的路径,我怎么能没有路径的协议,域和主机。 –

+0

可以请你调整这个答案以删除尾部斜线,那么它应该工作 –