Apache で特定のURLに一致する場合のみ、HTTPレスポンスヘッダを出力したい
2025-07-01 apache
例えば /hoge/
にリクエストを送った場合にのみ X-MGNG : [O = O]
というHTTPレスポンスヘッダを出力したい場合、Apache の場合は /hoge/.htaccess
に以下を記述すればいいはずがダメだった。
<If "%{REQUEST_URI} == '/hoge/'">
Header set X-MGNG "[O = O]"
</If>
いろいろ試して以下に変更したら想定する挙動になった。
<If "%{REQUEST_URI} == '/hoge/index.html'">
Header set X-MGNG "[O = O]"
</If>
Apache へのリクエストは /hoge/
だけど、 Apache 内部では DirectoryIndex の設定が効くために REQUEST_URI が /hoge/index.html
に書き変わっていた、と。
最初はAIに頼んで設定を作ってもらったんだけど動かず、最後は自分で検証して答えにたどり着いた。改めてAIも万能ではないことがわかったし、結局 Apache の知識がないと解決できなかったから、やはり地道な積み重ねは大切だ。