apache 根据请求的 request_uri 和内容类型响应发送特定代码

问题描述 投票:0回答:1

有没有办法有条件地设置redirectMatch 404或rewriteRule^(.*)$ - [R=404,L],其中条件是例如响应Content-Type等于text/html 我已经研究了 mod_headers 与 mod_setenvif 的结合,但看起来条件只能使用请求标头,而不能使用响应标头。

使用 mod_rewrite 我已经尝试了所有可能的方法,只有使用 mod_headers 我无法将标头项添加到响应中,如下所示 Header set X-Custom-Header "true" "expr=%{resp:Content-Type} =~ m|text /html|”,但问题是 mod_rewrite 或 If 指令无法访问已添加的标头(早期处理)

谢谢您的建议

apache mod-rewrite content-type mod-headers
1个回答
0
投票

以下是一个示例,尝试一下...希望它会起作用..

# Step 1: Set an environment variable if Content-Type is text/html
SetEnvIfNoCase Content-Type ^text/html is_html_response=true

# Step 2: Use mod_rewrite to perform a conditional redirect
RewriteEngine On
RewriteCond %{ENV:is_html_response} =true
RewriteRule ^ - [R=404,L]

© www.soinside.com 2019 - 2024. All rights reserved.