回答編集履歴
3
追記: a1\.cgi → http://example\.jp/script/a1\.cgi \(www\. なし\)にリダイレクトする設定
answer
CHANGED
@@ -57,3 +57,19 @@
|
|
57
57
|
RewriteRule ^(.*) http://www.example.jp%{REQUEST_URI} [R,L]
|
58
58
|
```
|
59
59
|
あとは、Y.H. さんの回答のとおり、デバッグログを調べるといいと思います。
|
60
|
+
|
61
|
+
**(2016/11/14 17:19) 追記**
|
62
|
+
a1.cgi → http://example.jp/script/a1.cgi (www. なし)にリダイレクトする設定。
|
63
|
+
```
|
64
|
+
RewriteEngine On
|
65
|
+
|
66
|
+
RewriteCond %{REQUEST_URI} !/(a1|a2)\.cgi$
|
67
|
+
RewriteCond %{HTTP_HOST} ^(www\.)?example\.jp [NC]
|
68
|
+
RewriteCond %{HTTPS} off
|
69
|
+
RewriteRule ^(.*) https://example.jp%{REQUEST_URI} [R,L]
|
70
|
+
|
71
|
+
RewriteCond %{REQUEST_URI} /(a1|a2)\.cgi$
|
72
|
+
RewriteCond %{HTTP_HOST} ^(www\.)?example\.jp [NC]
|
73
|
+
RewriteCond %{HTTPS} on
|
74
|
+
RewriteRule ^(.*) http://example.jp%{REQUEST_URI} [R,L]
|
75
|
+
```
|
2
追記、example\.jp に統一
answer
CHANGED
@@ -10,20 +10,50 @@
|
|
10
10
|
RewriteCond %{REQUEST_URI} ^/(a1|a2)\.cgi$
|
11
11
|
```
|
12
12
|
|
13
|
+
----
|
13
14
|
**(2016/11/11 11:58) 追記**
|
14
15
|
2つ目のルールで、下記リダイレクトはできていると思います。
|
15
16
|
```
|
16
|
-
https://www.
|
17
|
+
https://www.example.jp/a1.cgi → http://www.example.jp/a1.cgi
|
17
|
-
https://
|
18
|
+
https://example.jp/a1.cgi → http://www.example.jp/a1.cgi
|
18
19
|
```
|
19
20
|
さらに、
|
20
21
|
```
|
21
|
-
http://
|
22
|
+
http://example.jp/a1.cgi → http://www.example.jp/a1.cgi
|
22
23
|
```
|
23
24
|
としたいのでしょうか?
|
24
25
|
もし、そうれあれば、以下のルールを追加します。
|
25
26
|
```
|
26
27
|
RewriteCond %{REQUEST_URI} ^/(a1|a2)\.cgi$
|
27
|
-
RewriteCond %{HTTP_HOST} ^
|
28
|
+
RewriteCond %{HTTP_HOST} ^example\.jp [NC]
|
28
|
-
RewriteRule ^(.*) http://www.
|
29
|
+
RewriteRule ^(.*) http://www.example.jp%{REQUEST_URI} [L]
|
29
30
|
```
|
31
|
+
|
32
|
+
----
|
33
|
+
**(2016/11/11 19:01) 追記**
|
34
|
+
> https://exsample.jp/a1.cgiとなってしまいます。
|
35
|
+
|
36
|
+
というのは、https://example.jp/a1.cgi でアクセスしてもそのままでリダイレクトされない(2つ目のルールが効かない)ということですか?
|
37
|
+
それとも、http://www.example.jp/a1.cgi でアクセスすると https://example.jp/a1.cgi にリダイレクトされる(1つ目のルールが効いてしまう)ということですか?
|
38
|
+
どちらの場合も「RewriteCond %{REQUEST_URI} ...」の条件に合致していないように思います。
|
39
|
+
|
40
|
+
> a1.cgi(第二階層)
|
41
|
+
|
42
|
+
の「第二階層」とは、ファイルは (DocumentRoot)/script/a1.cgi にあるということですか?
|
43
|
+
よくわかりませんが、以下のように「^」(先頭)という条件を省くとどうでしょうか。
|
44
|
+
2つ目、3つ目のルールをまとめました。
|
45
|
+
```
|
46
|
+
RewriteEngine On
|
47
|
+
|
48
|
+
RewriteCond %{REQUEST_URI} !/(a1|a2)\.cgi$
|
49
|
+
RewriteCond %{HTTP_HOST} ^(www\.)?example\.jp [NC]
|
50
|
+
RewriteCond %{HTTPS} off
|
51
|
+
RewriteRule ^(.*) https://example.jp%{REQUEST_URI} [R,L]
|
52
|
+
|
53
|
+
RewriteCond %{REQUEST_URI} /(a1|a2)\.cgi$
|
54
|
+
RewriteCond %{HTTP_HOST} ^(www\.)?example\.jp [NC]
|
55
|
+
RewriteCond %{HTTPS} on [OR]
|
56
|
+
RewriteCond %{HTTP_HOST} ^example\.jp [NC]
|
57
|
+
RewriteRule ^(.*) http://www.example.jp%{REQUEST_URI} [R,L]
|
58
|
+
```
|
59
|
+
あとは、Y.H. さんの回答のとおり、デバッグログを調べるといいと思います。
|
1
追記
answer
CHANGED
@@ -8,4 +8,22 @@
|
|
8
8
|
RewriteCond %{REQUEST_URI} ^(a1|a2)\.cgi$
|
9
9
|
↓
|
10
10
|
RewriteCond %{REQUEST_URI} ^/(a1|a2)\.cgi$
|
11
|
-
```
|
11
|
+
```
|
12
|
+
|
13
|
+
**(2016/11/11 11:58) 追記**
|
14
|
+
2つ目のルールで、下記リダイレクトはできていると思います。
|
15
|
+
```
|
16
|
+
https://www.exsample.jp/a1.cgi → http://www.exsample.jp/a1.cgi
|
17
|
+
https://exsample.jp/a1.cgi → http://www.exsample.jp/a1.cgi
|
18
|
+
```
|
19
|
+
さらに、
|
20
|
+
```
|
21
|
+
http://exsample.jp/a1.cgi → http://www.exsample.jp/a1.cgi
|
22
|
+
```
|
23
|
+
としたいのでしょうか?
|
24
|
+
もし、そうれあれば、以下のルールを追加します。
|
25
|
+
```
|
26
|
+
RewriteCond %{REQUEST_URI} ^/(a1|a2)\.cgi$
|
27
|
+
RewriteCond %{HTTP_HOST} ^exsample\.jp [NC]
|
28
|
+
RewriteRule ^(.*) http://www.exsample.jp%{REQUEST_URI} [L]
|
29
|
+
```
|