apache - 获取请求主机 Apache htaccess 的变量?

标签 apache .htaccess apache2

我有下面的代码,我可以使用下面的代码来设置一个变量:

SetEnvIf Host (.*) custom_host=$1

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

例如,如果网站 http://example.com:32/welcome正在提出请求,我想把它作为变量吗?

最佳答案

而不是 Host你需要Referer访问 HTTP Referer在请求中发送的 header 。例如:

SetEnvIf Referer (.*) custom_referer=$1

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

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

更新:

how can i have just the protocol, domain and host without the path.



尝试将正则表达式更改为:
SetEnvIf Referer ^(https?://[^/]+) custom_referer=$1

如果 Refererhttp://example.com:32/welcome , 那么这应该只是 http://example.com:32存储在 custom_referer多变的。

关于apache - 获取请求主机 Apache htaccess 的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46677646/

相关文章:

Apache 别名抛出“"You don' t 有权限访问”错误

python - Django、mod_python、apache 和古怪的 session

.htaccess - 重写 URL

ubuntu - 在 Apache2 中使用可变子域运行多个网站

apache - 如何获得编辑apache2.conf文件的权限? [Ubuntu]

php - Apache2返回php源码

php - 500 内部服务器错误...特定于浏览器?

java - Apache PDFBox Java 库 - 是否有用于创建表格的 API?

.htaccess - htaccess 如何删除尾随问号

.htaccess - 基于 IP 地址限制/阻止目录