回答編集履歴

3

追記: a1\.cgi → http://example\.jp/script/a1\.cgi \(www\. なし\)にリダイレクトする設定

2016/11/14 08:19

投稿

TaichiYanagiya
TaichiYanagiya

スコア12146

test CHANGED
@@ -117,3 +117,35 @@
117
117
  あとは、Y.H. さんの回答のとおり、デバッグログを調べるといいと思います。
118
118
 
119
119
 
120
+
121
+ **(2016/11/14 17:19) 追記**
122
+
123
+ a1.cgi → http://example.jp/script/a1.cgi (www. なし)にリダイレクトする設定。
124
+
125
+ ```
126
+
127
+ RewriteEngine On
128
+
129
+
130
+
131
+ RewriteCond %{REQUEST_URI} !/(a1|a2)\.cgi$
132
+
133
+ RewriteCond %{HTTP_HOST} ^(www\.)?example\.jp [NC]
134
+
135
+ RewriteCond %{HTTPS} off
136
+
137
+ RewriteRule ^(.*) https://example.jp%{REQUEST_URI} [R,L]
138
+
139
+
140
+
141
+ RewriteCond %{REQUEST_URI} /(a1|a2)\.cgi$
142
+
143
+ RewriteCond %{HTTP_HOST} ^(www\.)?example\.jp [NC]
144
+
145
+ RewriteCond %{HTTPS} on
146
+
147
+ RewriteRule ^(.*) http://example.jp%{REQUEST_URI} [R,L]
148
+
149
+ ```
150
+
151
+

2

追記、example\.jp に統一

2016/11/14 08:19

投稿

TaichiYanagiya
TaichiYanagiya

スコア12146

test CHANGED
@@ -22,15 +22,17 @@
22
22
 
23
23
 
24
24
 
25
+ ----
26
+
25
27
  **(2016/11/11 11:58) 追記**
26
28
 
27
29
  2つ目のルールで、下記リダイレクトはできていると思います。
28
30
 
29
31
  ```
30
32
 
31
- https://www.exsample.jp/a1.cgi → http://www.exsample.jp/a1.cgi
33
+ https://www.example.jp/a1.cgi → http://www.example.jp/a1.cgi
32
34
 
33
- https://exsample.jp/a1.cgi → http://www.exsample.jp/a1.cgi
35
+ https://example.jp/a1.cgi → http://www.example.jp/a1.cgi
34
36
 
35
37
  ```
36
38
 
@@ -38,7 +40,7 @@
38
40
 
39
41
  ```
40
42
 
41
- http://exsample.jp/a1.cgi → http://www.exsample.jp/a1.cgi
43
+ http://example.jp/a1.cgi → http://www.example.jp/a1.cgi
42
44
 
43
45
  ```
44
46
 
@@ -50,10 +52,68 @@
50
52
 
51
53
  RewriteCond %{REQUEST_URI} ^/(a1|a2)\.cgi$
52
54
 
53
- RewriteCond %{HTTP_HOST} ^exsample\.jp [NC]
55
+ RewriteCond %{HTTP_HOST} ^example\.jp [NC]
54
56
 
55
- RewriteRule ^(.*) http://www.exsample.jp%{REQUEST_URI} [L]
57
+ RewriteRule ^(.*) http://www.example.jp%{REQUEST_URI} [L]
56
58
 
57
59
  ```
58
60
 
59
61
 
62
+
63
+ ----
64
+
65
+ **(2016/11/11 19:01) 追記**
66
+
67
+ > https://exsample.jp/a1.cgiとなってしまいます。
68
+
69
+
70
+
71
+ というのは、https://example.jp/a1.cgi でアクセスしてもそのままでリダイレクトされない(2つ目のルールが効かない)ということですか?
72
+
73
+ それとも、http://www.example.jp/a1.cgi でアクセスすると https://example.jp/a1.cgi にリダイレクトされる(1つ目のルールが効いてしまう)ということですか?
74
+
75
+ どちらの場合も「RewriteCond %{REQUEST_URI} ...」の条件に合致していないように思います。
76
+
77
+
78
+
79
+ > a1.cgi(第二階層)
80
+
81
+
82
+
83
+ の「第二階層」とは、ファイルは (DocumentRoot)/script/a1.cgi にあるということですか?
84
+
85
+ よくわかりませんが、以下のように「^」(先頭)という条件を省くとどうでしょうか。
86
+
87
+ 2つ目、3つ目のルールをまとめました。
88
+
89
+ ```
90
+
91
+ RewriteEngine On
92
+
93
+
94
+
95
+ RewriteCond %{REQUEST_URI} !/(a1|a2)\.cgi$
96
+
97
+ RewriteCond %{HTTP_HOST} ^(www\.)?example\.jp [NC]
98
+
99
+ RewriteCond %{HTTPS} off
100
+
101
+ RewriteRule ^(.*) https://example.jp%{REQUEST_URI} [R,L]
102
+
103
+
104
+
105
+ RewriteCond %{REQUEST_URI} /(a1|a2)\.cgi$
106
+
107
+ RewriteCond %{HTTP_HOST} ^(www\.)?example\.jp [NC]
108
+
109
+ RewriteCond %{HTTPS} on [OR]
110
+
111
+ RewriteCond %{HTTP_HOST} ^example\.jp [NC]
112
+
113
+ RewriteRule ^(.*) http://www.example.jp%{REQUEST_URI} [R,L]
114
+
115
+ ```
116
+
117
+ あとは、Y.H. さんの回答のとおり、デバッグログを調べるといいと思います。
118
+
119
+

1

追記

2016/11/11 10:05

投稿

TaichiYanagiya
TaichiYanagiya

スコア12146

test CHANGED
@@ -19,3 +19,41 @@
19
19
  RewriteCond %{REQUEST_URI} ^/(a1|a2)\.cgi$
20
20
 
21
21
  ```
22
+
23
+
24
+
25
+ **(2016/11/11 11:58) 追記**
26
+
27
+ 2つ目のルールで、下記リダイレクトはできていると思います。
28
+
29
+ ```
30
+
31
+ https://www.exsample.jp/a1.cgi → http://www.exsample.jp/a1.cgi
32
+
33
+ https://exsample.jp/a1.cgi → http://www.exsample.jp/a1.cgi
34
+
35
+ ```
36
+
37
+ さらに、
38
+
39
+ ```
40
+
41
+ http://exsample.jp/a1.cgi → http://www.exsample.jp/a1.cgi
42
+
43
+ ```
44
+
45
+ としたいのでしょうか?
46
+
47
+ もし、そうれあれば、以下のルールを追加します。
48
+
49
+ ```
50
+
51
+ RewriteCond %{REQUEST_URI} ^/(a1|a2)\.cgi$
52
+
53
+ RewriteCond %{HTTP_HOST} ^exsample\.jp [NC]
54
+
55
+ RewriteRule ^(.*) http://www.exsample.jp%{REQUEST_URI} [L]
56
+
57
+ ```
58
+
59
+