質問編集履歴
5
タイトルの修正
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
Apache2.2で有効だったACLがApache2.4で
|
1
|
+
Apache2.2で有効だったACLがApache2.4で無視される
|
body
CHANGED
File without changes
|
4
タイトル修正
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
|
1
|
+
Apache2.2で有効だったACLがApache2.4では有効化されない
|
body
CHANGED
File without changes
|
3
タイトルの改善
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
Apache2.
|
1
|
+
あいApache2.2で有効だったACLがApache2.4では有効化されない
|
body
CHANGED
File without changes
|
2
誤記修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,11 +1,9 @@
|
|
1
1
|
###前提・実現したいこと
|
2
|
-
最終的にやりたいことは「特定のIPからのアクセスだけ403にせずリライトする」ですが、事象解説のため
|
2
|
+
最終的にやりたいことは「特定のIPからのアクセスだけ403にせずリライトする」ですが、事象解説のため簡略例で説明させていただきます。
|
3
3
|
|
4
|
-
|
4
|
+
httpd.conf に対して、後述の Deny(for Apa2.2) または Require(for Apa2.4)設定を記載して、上位ディレクトリレベルで全てのアクセスをACLで拒否しています。
|
5
|
-
この状態で
|
5
|
+
この状態でRewriteRule設定を入れた場合でも、ACLが有効化されたままで403エラーとなることを実現したいと考えています。
|
6
6
|
|
7
|
-
後述のConf設定の場合、ApacheのDirectory仕様ではディレクトリの階層が上のほうから処理されるため、ACLが有効化されて403エラーになるはずです。
|
8
|
-
|
9
7
|
###発生している問題・エラーメッセージ
|
10
8
|
<結果>
|
11
9
|
ブラウザからアクセスした結果、
|
@@ -17,6 +15,7 @@
|
|
17
15
|
・Apache2.4では、本来deniedとなるはずのアクセスが許可されてしまい、
|
18
16
|
リライトが機能してgoogleへ302リダイレクトされてしまいます。
|
19
17
|
・つまり2.2とは逆で、ACL設定よりもRewriteRuleの設定が優先されているように見えます。
|
18
|
+
・ApacheのDirectory仕様ではディレクトリの階層が上のほうから処理されるため、本来であればACL設定が効いて403エラーとなるはずです。
|
20
19
|
|
21
20
|
###該当のソースコード
|
22
21
|
```
|
1
一部不明瞭な記述があったため、見直しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,23 +1,22 @@
|
|
1
|
-
※最終的にやりたいことは「特定のIPからのアクセスだけ403にせずリライトする」ですが、
|
2
|
-
事象説明のため、わかりやすい例として内容を大幅に簡素化して記載しています
|
3
|
-
|
4
1
|
###前提・実現したいこと
|
5
|
-
例として httpd.conf に後述の設定を記載してアクセスを全て拒否しています。
|
6
|
-
|
2
|
+
最終的にやりたいことは「特定のIPからのアクセスだけ403にせずリライトする」ですが、事象解説のため、簡略した例で説明させていただきます。
|
7
3
|
|
4
|
+
例として httpd.conf に後述の Deny(for Apa2.2) または Require(for Apa2.4)設定を記載してアクセスをACLで全て拒否しているとします。
|
5
|
+
この状態でApache2.4にRewriteRule設定を入れても、ACLでの全拒否状態が維持されることを期待しています。
|
6
|
+
|
7
|
+
後述のConf設定の場合、ApacheのDirectory仕様ではディレクトリの階層が上のほうから処理されるため、ACLが有効化されて403エラーになるはずです。
|
8
|
+
|
8
9
|
###発生している問題・エラーメッセージ
|
9
|
-
<想定される動作>
|
10
|
-
Apacheの仕様ではディレクトリの階層が上のほうから処理されるため
|
11
|
-
ACLが有効化されて403エラーになるはずです。
|
12
|
-
|
13
10
|
<結果>
|
11
|
+
ブラウザからアクセスした結果、
|
14
12
|
・Apache2.2では403エラー(正常にACLが効いている)
|
15
|
-
・Apache2.4では302でリダイレクト(ACLが効いていない)
|
13
|
+
・Apache2.4では302でリダイレクトでgoogleに飛ばされる(ACLが効いていない)
|
14
|
+
となりました。
|
16
15
|
|
17
16
|
<問題点>
|
18
17
|
・Apache2.4では、本来deniedとなるはずのアクセスが許可されてしまい、
|
19
18
|
リライトが機能してgoogleへ302リダイレクトされてしまいます。
|
20
|
-
・つまりACL
|
19
|
+
・つまり2.2とは逆で、ACL設定よりもRewriteRuleの設定が優先されているように見えます。
|
21
20
|
|
22
21
|
###該当のソースコード
|
23
22
|
```
|
@@ -52,6 +51,10 @@
|
|
52
51
|
・Apache2.4からアクセス制御の認証仕様が変更されたため、
|
53
52
|
Orderを書くのではなくRequireになりましたが、その関係では? と疑っていますが
|
54
53
|
Web上にも同様の知見がなく、1日中Confをいろいろ変更して試してみたのですが解決していない状況です。
|
54
|
+
・<Location />
|
55
|
+
Require all denied
|
56
|
+
</Location>
|
57
|
+
でも結果は同じでした(2.2は403で、2.4は302)。
|
55
58
|
・RHバンドル版ではなくソースコンパイル版のApacheですので、RH社への問い合わせができず、自己解決するしかない状況です。
|
56
59
|
お力添えいただけますと幸甚です。
|
57
60
|
|