犬ターネット

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 の知識がないと解決できなかったから、やはり地道な積み重ねは大切だ。


≪ 2025-07-01
人の手

2025-06-23 ≫
国宝