質問編集履歴
9
微修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -105,3 +105,5 @@
|
|
105
105
|
- 自宅サーバーのselinuxを一時的にオフにしても変化なし
|
106
106
|
|
107
107
|
- .htaccessのRewriteRuleのオプションを[L,P]から[L]または[L,R]にして普通にリダイレクトさせれば画像が見れる
|
108
|
+
|
109
|
+
- AWSにアクセスして404が返ってきたとき,自宅サーバーのApacheのログには何も記録されていない
|
8
微修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
そこで,AWSのWEBサーバーの/archive/.htaccessに下記のように設定した.
|
5
|
+
そこで,AWSのWEBサーバーの[DocumentRoot]/archive/.htaccessに下記のように設定した.
|
6
6
|
|
7
7
|
```htaccess
|
8
8
|
|
7
微修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -24,7 +24,7 @@
|
|
24
24
|
|
25
25
|
|
26
26
|
|
27
|
-
Apacheのerrorログを見ると以下のようになっていて,最後の行の```http://xxx.xxx.xxx.xxx:8080/storage/aaa.jpg```はブラウザから直接アクセスすれば画像を見ることができる.
|
27
|
+
Apacheのerrorログを見ると以下のようになっていて,最後の行の```http://xxx.xxx.xxx.xxx:8080/storage/aaa.jpg```はブラウザから直接アクセスすれば画像を見ることができる上に,EC2上でwgetすると正常に取得できる.
|
28
28
|
|
29
29
|
|
30
30
|
|
6
微修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -31,12 +31,6 @@
|
|
31
31
|
解決方法が分かる方はいらっしゃいますでしょうか.
|
32
32
|
|
33
33
|
```text
|
34
|
-
|
35
|
-
[Sun Jul 12 00:05:16.006222 2020] [rewrite:trace3] [pid 15694] mod_rewrite.c(482): [client xxx.xxx.xxx.xxx:61496] xxx.xxx.xxx.xxx - - [hoge.jp/sid#7f7a55236f10][rid#7f7a551bc0a0/initial] [perdir /home/ubuntu/public_html/archive/] strip per-dir prefix: /home/ubuntu/public_html/archive/storage/aaa.jpg -> storage/aaa.jpg
|
36
|
-
|
37
|
-
[Sun Jul 12 00:05:16.006230 2020] [rewrite:trace3] [pid 15694] mod_rewrite.c(482): [client xxx.xxx.xxx.xxx:61496] xxx.xxx.xxx.xxx - - [hoge.jp/sid#7f7a55236f10][rid#7f7a551bc0a0/initial] [perdir /home/ubuntu/public_html/archive/] applying pattern '.*(jpg|png|gif)$' to uri 'storage/aaa.jpg'
|
38
|
-
|
39
|
-
[Sun Jul 12 00:05:16.006252 2020] [rewrite:trace4] [pid 15694] mod_rewrite.c(482): [client xxx.xxx.xxx.xxx:61496] xxx.xxx.xxx.xxx - - [hoge.jp/sid#7f7a55236f10][rid#7f7a551bc0a0/initial] [perdir /home/ubuntu/public_html/archive/] RewriteCond: input='/archive/storage/aaa.jpg' pattern='^.*/storage/thumb/[^/]+\.(jpg|png|gif)$' => not-matched
|
40
34
|
|
41
35
|
[Sun Jul 12 00:05:16.006257 2020] [rewrite:trace3] [pid 15694] mod_rewrite.c(482): [client xxx.xxx.xxx.xxx:61496] xxx.xxx.xxx.xxx - - [hoge.jp/sid#7f7a55236f10][rid#7f7a551bc0a0/initial] [perdir /home/ubuntu/public_html/archive/] strip per-dir prefix: /home/ubuntu/public_html/archive/storage/aaa.jpg -> storage/aaa.jpg
|
42
36
|
|
5
微修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
そこで,AWSのWEBサーバーの.htaccessに下記のように設定した.
|
5
|
+
そこで,AWSのWEBサーバーの/archive/.htaccessに下記のように設定した.
|
6
6
|
|
7
7
|
```htaccess
|
8
8
|
|
4
タイトル改善
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
.htaccessでRewriteRuleを使ってURLを書き換えると”File does not exist”になってしまう
|
test
CHANGED
File without changes
|
3
タイトル改善
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
Apacheの.htaccessでRewriteRuleを使って
|
1
|
+
Apacheの.htaccessでRewriteRuleを使ってURLを書き換えると”File does not exist”になってしまう
|
test
CHANGED
File without changes
|
2
微修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -24,7 +24,7 @@
|
|
24
24
|
|
25
25
|
|
26
26
|
|
27
|
-
Apacheのerrorログを見ると以下のようになっていて,最後の行の```http://xxx.xxx.xxx.xxx:8080/storage/aaa.jpg```
|
27
|
+
Apacheのerrorログを見ると以下のようになっていて,最後の行の```http://xxx.xxx.xxx.xxx:8080/storage/aaa.jpg```はブラウザから直接アクセスすれば画像を見ることができる.
|
28
28
|
|
29
29
|
|
30
30
|
|
1
最初の版で投稿ミスをした
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,5 +1,113 @@
|
|
1
|
-
|
1
|
+
当方で用意したAWSのEC2上のApacheのWEBサーバーからクライアントが画像を取得しようとしたときに,サーバーにファイルが存在しない場合は,EC2が自宅のWEBサーバーからファイルを取得して,それをクライアントに返すようにしたい.
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
そこで,
|
5
|
+
そこで,AWSのWEBサーバーの.htaccessに下記のように設定した.
|
6
|
+
|
7
|
+
```htaccess
|
8
|
+
|
9
|
+
RewriteEngine On
|
10
|
+
|
11
|
+
RewriteCond %{REQUEST_URI} ^.*/storage/[^/]+.(jpg|png|gif)$
|
12
|
+
|
13
|
+
RewriteCond %{REQUEST_FILENAME} !-f
|
14
|
+
|
15
|
+
RewriteRule ^storage/([^/]+.(?:jpg|png|gif))$ http://xxx.xxx.xxx.xxx:8080/storage/$1 [L,P]
|
16
|
+
|
17
|
+
```
|
18
|
+
|
19
|
+
例えば,```https://hoge.jp/archive/storage/aaa.jpg```にアクセスして,ファイルが存在しない場合はリバースプロキシで```http://xxx.xxx.xxx.xxx:8080/storage/aaa.jpg```からデータを取得してクライアントに返すようにしたい.
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
しかし,```https://exmaple.com/archive/storage/aaa.jpg```にアクセスすると404エラーとなってしまう.
|
24
|
+
|
25
|
+
|
26
|
+
|
27
|
+
Apacheのerrorログを見ると以下のようになっていて,最後の行の```http://xxx.xxx.xxx.xxx:8080/storage/aaa.jpg```にブラウザから直接アクセスすれば画像を見ることができる.
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
解決方法が分かる方はいらっしゃいますでしょうか.
|
32
|
+
|
33
|
+
```text
|
34
|
+
|
35
|
+
[Sun Jul 12 00:05:16.006222 2020] [rewrite:trace3] [pid 15694] mod_rewrite.c(482): [client xxx.xxx.xxx.xxx:61496] xxx.xxx.xxx.xxx - - [hoge.jp/sid#7f7a55236f10][rid#7f7a551bc0a0/initial] [perdir /home/ubuntu/public_html/archive/] strip per-dir prefix: /home/ubuntu/public_html/archive/storage/aaa.jpg -> storage/aaa.jpg
|
36
|
+
|
37
|
+
[Sun Jul 12 00:05:16.006230 2020] [rewrite:trace3] [pid 15694] mod_rewrite.c(482): [client xxx.xxx.xxx.xxx:61496] xxx.xxx.xxx.xxx - - [hoge.jp/sid#7f7a55236f10][rid#7f7a551bc0a0/initial] [perdir /home/ubuntu/public_html/archive/] applying pattern '.*(jpg|png|gif)$' to uri 'storage/aaa.jpg'
|
38
|
+
|
39
|
+
[Sun Jul 12 00:05:16.006252 2020] [rewrite:trace4] [pid 15694] mod_rewrite.c(482): [client xxx.xxx.xxx.xxx:61496] xxx.xxx.xxx.xxx - - [hoge.jp/sid#7f7a55236f10][rid#7f7a551bc0a0/initial] [perdir /home/ubuntu/public_html/archive/] RewriteCond: input='/archive/storage/aaa.jpg' pattern='^.*/storage/thumb/[^/]+\.(jpg|png|gif)$' => not-matched
|
40
|
+
|
41
|
+
[Sun Jul 12 00:05:16.006257 2020] [rewrite:trace3] [pid 15694] mod_rewrite.c(482): [client xxx.xxx.xxx.xxx:61496] xxx.xxx.xxx.xxx - - [hoge.jp/sid#7f7a55236f10][rid#7f7a551bc0a0/initial] [perdir /home/ubuntu/public_html/archive/] strip per-dir prefix: /home/ubuntu/public_html/archive/storage/aaa.jpg -> storage/aaa.jpg
|
42
|
+
|
43
|
+
[Sun Jul 12 00:05:16.006267 2020] [rewrite:trace3] [pid 15694] mod_rewrite.c(482): [client xxx.xxx.xxx.xxx:61496] xxx.xxx.xxx.xxx - - [hoge.jp/sid#7f7a55236f10][rid#7f7a551bc0a0/initial] [perdir /home/ubuntu/public_html/archive/] applying pattern '^storage/([^/]+\.(?:jpg|png|gif))$' to uri 'storage/aaa.jpg'
|
44
|
+
|
45
|
+
[Sun Jul 12 00:05:16.006278 2020] [rewrite:trace4] [pid 15694] mod_rewrite.c(482): [client xxx.xxx.xxx.xxx:61496] xxx.xxx.xxx.xxx - - [hoge.jp/sid#7f7a55236f10][rid#7f7a551bc0a0/initial] [perdir /home/ubuntu/public_html/archive/] RewriteCond: input='/archive/storage/aaa.jpg' pattern='^.*/storage/[^/]+\.(jpg|png|gif)$' => matched
|
46
|
+
|
47
|
+
[Sun Jul 12 00:05:16.006286 2020] [rewrite:trace4] [pid 15694] mod_rewrite.c(482): [client xxx.xxx.xxx.xxx:61496] xxx.xxx.xxx.xxx - - [hoge.jp/sid#7f7a55236f10][rid#7f7a551bc0a0/initial] [perdir /home/ubuntu/public_html/archive/] RewriteCond: input='/home/ubuntu/public_html/archive/storage/aaa.jpg' pattern='!-f' => matched
|
48
|
+
|
49
|
+
[Sun Jul 12 00:05:16.006291 2020] [rewrite:trace2] [pid 15694] mod_rewrite.c(482): [client xxx.xxx.xxx.xxx:61496] xxx.xxx.xxx.xxx - - [hoge.jp/sid#7f7a55236f10][rid#7f7a551bc0a0/initial] [perdir /home/ubuntu/public_html/archive/] rewrite 'storage/aaa.jpg' -> 'http://xxx.xxx.xxx.xxx:8080/storage/aaa.jpg'
|
50
|
+
|
51
|
+
[Sun Jul 12 00:05:16.006297 2020] [rewrite:trace2] [pid 15694] mod_rewrite.c(482): [client xxx.xxx.xxx.xxx:61496] xxx.xxx.xxx.xxx - - [hoge.jp/sid#7f7a55236f10][rid#7f7a551bc0a0/initial] [perdir /home/ubuntu/public_html/archive/] escaped URI in per-dir context for proxy, http://xxx.xxx.xxx.xxx:8080/storage/aaa.jpg -> http://xxx.xxx.xxx.xxx:8080/storage/aaa.jpg
|
52
|
+
|
53
|
+
[Sun Jul 12 00:05:16.006308 2020] [rewrite:trace2] [pid 15694] mod_rewrite.c(482): [client xxx.xxx.xxx.xxx:61496] xxx.xxx.xxx.xxx - - [hoge.jp/sid#7f7a55236f10][rid#7f7a551bc0a0/initial] [perdir /home/ubuntu/public_html/archive/] forcing proxy-throughput with http://xxx.xxx.xxx.xxx:8080/storage/aaa.jpg
|
54
|
+
|
55
|
+
[Sun Jul 12 00:05:16.006314 2020] [rewrite:trace1] [pid 15694] mod_rewrite.c(482): [client xxx.xxx.xxx.xxx:61496] xxx.xxx.xxx.xxx - - [hoge.jp/sid#7f7a55236f10][rid#7f7a551bc0a0/initial] [perdir /home/ubuntu/public_html/archive/] go-ahead with proxy request proxy:http://xxx.xxx.xxx.xxx:8080/storage/aaa.jpg [OK]
|
56
|
+
|
57
|
+
[Sun Jul 12 00:05:16.006350 2020] [core:info] [pid 15694] [client xxx.xxx.xxx.xxx:61496] AH00128: File does not exist: proxy:http://xxx.xxx.xxx.xxx:8080/storage/aaa.jpg
|
58
|
+
|
59
|
+
```
|
60
|
+
|
61
|
+
---
|
62
|
+
|
63
|
+
EC2のApacheの手動設定内容(主要箇所抜粋・ファイル混在)
|
64
|
+
|
65
|
+
```Apache
|
66
|
+
|
67
|
+
<VirtualHost *:80>
|
68
|
+
|
69
|
+
DocumentRoot /home/ubuntu/public_html
|
70
|
+
|
71
|
+
RewriteEngine On
|
72
|
+
|
73
|
+
RewriteCond %{HTTPS} off
|
74
|
+
|
75
|
+
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
|
76
|
+
|
77
|
+
</VirtualHost>
|
78
|
+
|
79
|
+
|
80
|
+
|
81
|
+
<IfModule mod_ssl.c>
|
82
|
+
|
83
|
+
<VirtualHost _default_:443>
|
84
|
+
|
85
|
+
DocumentRoot /home/ubuntu/public_html
|
86
|
+
|
87
|
+
</VirtualHost>
|
88
|
+
|
89
|
+
</IfModule>
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
<Directory "/home/ubuntu/public_html">
|
94
|
+
|
95
|
+
AllowOverride All
|
96
|
+
|
97
|
+
Options ExecCGI MultiViews SymLinksIfOwnerMatch IncludesNoExec
|
98
|
+
|
99
|
+
Require all granted
|
100
|
+
|
101
|
+
AddHandler cgi-script .cgi .pl
|
102
|
+
|
103
|
+
</Directory>
|
104
|
+
|
105
|
+
```
|
106
|
+
|
107
|
+
- AWS・・・EC2,Ubuntu18.04(Debian10),Apache/2.4.29
|
108
|
+
|
109
|
+
- 自宅サーバー・・・Raspberry Pi3,OSMC(Debian9.12),Apache/2.4.25
|
110
|
+
|
111
|
+
- 自宅サーバーのselinuxを一時的にオフにしても変化なし
|
112
|
+
|
113
|
+
- .htaccessのRewriteRuleのオプションを[L,P]から[L]または[L,R]にして普通にリダイレクトさせれば画像が見れる
|