【问题标题】:Getting variable of requesting host Apache htaccess?获取请求主机 Apache htaccess 的变量?
【发布时间】:2018-03-22 12:06:42
【问题描述】:

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

SetEnvIf Host (.*) custom_host=$1

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

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

【问题讨论】:

    标签: apache .htaccess apache2


    【解决方案1】:

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

    SetEnvIf Referer (.*) custom_referer=$1
    

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

    另请注意,可能未设置 HTTP Referer 标头。引用站点和用户的浏览器都可以阻止此操作。

    更新:

    我怎么能只有协议、域和主机没有路径。

    尝试将正则表达式更改为:

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

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

    【讨论】:

    • 行得通,但是我意识到 CORS 匹配失败,因为它也有路径,我怎么能只有协议、域和主机没有路径。
    • 您能否调整此答案以删除尾部斜杠,然后它应该可以工作
    猜你喜欢
    • 1970-01-01
    • 2013-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-11
    • 1970-01-01
    • 2021-10-12
    相关资源
    最近更新 更多