teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

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

2016/11/14 08:19

投稿

TaichiYanagiya
TaichiYanagiya

スコア12218

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 に統一

2016/11/14 08:19

投稿

TaichiYanagiya
TaichiYanagiya

スコア12218

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.exsample.jp/a1.cgi → http://www.exsample.jp/a1.cgi
17
+ https://www.example.jp/a1.cgi → http://www.example.jp/a1.cgi
17
- https://exsample.jp/a1.cgi → http://www.exsample.jp/a1.cgi
18
+ https://example.jp/a1.cgi → http://www.example.jp/a1.cgi
18
19
  ```
19
20
  さらに、
20
21
  ```
21
- http://exsample.jp/a1.cgi → http://www.exsample.jp/a1.cgi
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} ^exsample\.jp [NC]
28
+ RewriteCond %{HTTP_HOST} ^example\.jp [NC]
28
- RewriteRule ^(.*) http://www.exsample.jp%{REQUEST_URI} [L]
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

追記

2016/11/11 10:05

投稿

TaichiYanagiya
TaichiYanagiya

スコア12218

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
+ ```