回答編集履歴
3
B→A
test
CHANGED
@@ -56,7 +56,7 @@
|
|
56
56
|
|
57
57
|
(4)index.htmlで終わっていないので、篩い落とされます。
|
58
58
|
|
59
|
-
(5)
|
59
|
+
(5)Aで篩い落とされているのですが、**index.htmlで終わっている**ので通過します。
|
60
60
|
|
61
61
|
|
62
62
|
|
2
処理の終了フラグを指定しないとこうなるみたいです
test
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
RewriteRuleは正規表現に基づくフィルタリングです。そしてOR条件フラグが付与されていないので、
|
2
2
|
|
3
|
-
現状だと順番に累積のAND条件によって篩い分けられます。ただし、最後の条件だけ通過すると、それは通
|
3
|
+
現状だと順番に累積のAND条件によって篩い分けられます。ただし、間が空いて、最後の条件だけ通過すると、それは通る現象が発生します。
|
4
4
|
|
5
5
|
|
6
6
|
|
@@ -30,7 +30,7 @@
|
|
30
30
|
|
31
31
|
|
32
32
|
|
33
|
-
(1)(2)が通り、(3)が
|
33
|
+
(4)と(5)はAで篩い落とされているので、`!^www`により、wwwが付かない(1)(2)が通り、(3)が篩い落とされます。
|
34
34
|
|
35
35
|
|
36
36
|
|
@@ -44,15 +44,17 @@
|
|
44
44
|
|
45
45
|
```
|
46
46
|
|
47
|
+
ここでは(3)だけが篩い落とされた状態で、Aで篩い落とされたはずの(4)と(5)も対象となり、(1)(2)(4)(5)に対し、index.htmlが存在するかどうかでフィルタリングされます。どうしてこうなるかは、下のリンクを参照してください。
|
47
48
|
|
48
49
|
|
50
|
+
|
49
|
-
(1)index.htmlで終わっていないので、篩い落とされます
|
51
|
+
(1)index.htmlで終わっていないので、篩い落とされます。
|
50
52
|
|
51
53
|
(2)Bを通過し、かつ**index.htmlで終わっている**ので通過します。
|
52
54
|
|
53
55
|
(3)Bで篩い落とされています。
|
54
56
|
|
55
|
-
(4)
|
57
|
+
(4)index.htmlで終わっていないので、篩い落とされます。
|
56
58
|
|
57
59
|
(5)Bで篩い落とされているのですが、**index.htmlで終わっている**ので通過します。
|
58
60
|
|
@@ -62,7 +64,7 @@
|
|
62
64
|
|
63
65
|
|
64
66
|
|
65
|
-
この状態を回避するためには、AND条件ではなくOR条件にしてあげるといいと思います。
|
67
|
+
この**どうしてこうなった**状態を回避するためには、AND条件ではなくOR条件にしてあげるといいと思います。
|
66
68
|
|
67
69
|
```
|
68
70
|
|
@@ -79,3 +81,7 @@
|
|
79
81
|
●OR条件の参考リンク↓
|
80
82
|
|
81
83
|
[Apache RewriteCond の基礎知識](https://weblabo.oscasierra.net/apache-rewritecond-base/)
|
84
|
+
|
85
|
+
●処理振り分けの参考ページ
|
86
|
+
|
87
|
+
[.htaccess に RewriteRule 書くときは、[L]フラグをつけてもそこで終了しないかもよ?って話。](https://qiita.com/ezaki/items/87c2dff8f7753ef048d2)
|
1
論法の修正
test
CHANGED
@@ -14,7 +14,7 @@
|
|
14
14
|
|
15
15
|
|
16
16
|
|
17
|
-
|
17
|
+
(1)(2)(3)が通り、(4)と(5)が篩い落とされます。
|
18
18
|
|
19
19
|
|
20
20
|
|
@@ -30,7 +30,7 @@
|
|
30
30
|
|
31
31
|
|
32
32
|
|
33
|
-
(1)(2)
|
33
|
+
(1)(2)が通り、(3)がふるい落とされます。
|
34
34
|
|
35
35
|
|
36
36
|
|
@@ -50,9 +50,9 @@
|
|
50
50
|
|
51
51
|
(2)Bを通過し、かつ**index.htmlで終わっている**ので通過します。
|
52
52
|
|
53
|
-
(3)Bで篩い落とされ
|
53
|
+
(3)Bで篩い落とされています。
|
54
54
|
|
55
|
-
(4)
|
55
|
+
(4)Aで篩い落とされています。
|
56
56
|
|
57
57
|
(5)Bで篩い落とされているのですが、**index.htmlで終わっている**ので通過します。
|
58
58
|
|