gpt4 book ai didi

响应的 Apache 2.2 条件 header

转载 作者:行者123 更新时间:2023-12-02 04:54:05 25 4
gpt4 key购买 nike

我正在尝试将 apache 配置为在响应时发送过期和缓存控制 header ,但前提是我在请求中收到一些特定的查询字符串。

为此,我尝试按如下方式配置服务器:

RewriteCond %{QUERY_STRING} ^.*{whateverIWantInMyQueryString}.*$ 
RewriteRule ^(.*)$ - [env=CACHE_HEADERS:1]

<FilesMatch "\.(js|css|png|gif|GIF)$">
<IfDefine CACHE_HEADERS>
ExpiresActive On
ExpiresDefault "access plus 12 hours"
Header append Cache-Control "public"
</IfDefine>
</FilesMatch>

但这似乎行不通。

如果我按如下方式更改配置:

....
<IfDefine !CACHE_HEADERS>
....

它确实有效,所以 IfDefine 似乎无法检查是否设置了 CACHE_HEADERS 环境变量。

我也试过使用 Header 指令和基于相同环境变量的条件配置东西,使用类似这样的东西:

RewriteCond %{QUERY_STRING} ^.*{whateverIWantInMyQueryString}.*$ 
RewriteRule ^(.*)$ - [env=CACHE_HEADERS:1]
<FilesMatch "\.(js|css|png|gif|GIF)$">
Header always set Cache-Control "max-age=3600, public" env=CACHE_HEADERS
Header always set Expires "Thu, 01 Jan 2015 00:00:00 GMT" env=CACHE_HEADERS
</FilesMatch>
.....

但这也行不通。所以我假设这可能是因为 mod_rewrite 设置的环境变量,出于某种原因,IfDefine 指令和 Header 指令都没有检测到。

有谁知道可能是什么原因造成的,或者为什么这根本不起作用?

最佳答案

您可以在此处找到 IfDefined 不起作用的原因:Apache IfDefine conditionals in .htaccess

基本上,IfDefined 仅评估在命令行中定义的变量不会如果您像以前那样或使用 SetEnv 或 SetEnvIf 定义它们。

但据我所知,env= 应该可行。

关于响应的 Apache 2.2 条件 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24768731/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com