如何通过.htaccess为legacyFrontend目录文件添加Deprecated响应头
为legacyFrontend目录添加Deprecated响应头的正确配置
你之前的配置无效或报错的原因:
<FilesMatch>和<Files>仅匹配文件名,不包含路径,无法命中目录下的文件.htaccess中不能使用<Directory>块,这会触发500错误(该指令仅允许在Apache主配置文件中使用)
以下是几种可行的解决方案:
方案1:直接在legacyFrontend目录下放置.htaccess
在legacyFrontend目录新建/编辑.htaccess,添加以下内容即可:
Header set Deprecation "Sat, 31 Dec 2022 23:59:59 GMT"
该配置会自动作用于该目录下所有文件及子目录。
方案2:在根目录的.htaccess中配置(Apache 2.4+)
如果不想单独在子目录维护配置,可以用Apache 2.4支持的<If>块匹配请求路径:
<If "%{REQUEST_URI} =~ m#^/legacyFrontend/#"> Header set Deprecation "Sat, 31 Dec 2022 23:59:59 GMT" </If>
或者用Header指令的expr条件直接判断:
Header set Deprecation "Sat, 31 Dec 2022 23:59:59 GMT" "expr=%{REQUEST_URI} =~ m#^/legacyFrontend/#"
方案3:兼容Apache 2.2的写法
如果你的Apache版本是2.2(不支持<If>块),可以用Rewrite规则标记环境变量,再根据变量设置响应头:
RewriteEngine On RewriteRule ^legacyFrontend/ - [ENV=DEPRECATED:1] Header set Deprecation "Sat, 31 Dec 2022 23:59:59 GMT" env=DEPRECATED
注意事项
- 确保Apache的
mod_headers模块已启用(多数主机默认启用) - 请求
legacyFrontend目录本身(带尾斜杠)时,以上配置同样生效
内容的提问来源于stack exchange,提问作者JoSSte
相关产品推荐
相关产品推荐

