質問編集履歴

5

再現方法の追記

2020/07/23 10:56

投稿

yuzusan
yuzusan

スコア7

test CHANGED
@@ -1 +1 @@
1
- htaccess Rewriteを使おうとするがエラーが発生する
1
+ .htaccess RewriteRule記入しURLを省略しようとするも、思い通りに動作しない
test CHANGED
@@ -12,8 +12,6 @@
12
12
 
13
13
  example.com/suzuki/profile.jpg
14
14
 
15
- example.com/takahashi/myinfo/address.php
16
-
17
15
 
18
16
 
19
17
  実際にアクセスしているURL
@@ -22,12 +20,12 @@
22
20
 
23
21
  example.com/name/suzuki/profile.jpg
24
22
 
25
- example.com/name/takahashi/myinfo/address.php
26
-
27
23
 
28
24
 
29
25
  ### やったこと
30
26
 
27
+ ※ブラウザのキャッシュはきちんと削除しています
28
+
31
29
  ```htaccess
32
30
 
33
31
  RewriteEngine On
@@ -38,7 +36,7 @@
38
36
 
39
37
  RewriteCond %{REQUEST_URL} !^/name/
40
38
 
41
- RewriteRule ^(.*)$ /name/$1`
39
+ RewriteRule ^(.*)$ /name/$1
42
40
 
43
41
  ```
44
42
 
@@ -46,7 +44,7 @@
46
44
 
47
45
  → ブラウザに表示されるURLが example.com/name/yamada/ となってしまい name が表示されてしまう。ですが内容はきちんと表示されます。
48
46
 
49
-
47
+ name は表示させないようにしたい。
50
48
 
51
49
 
52
50
 
@@ -132,15 +130,13 @@
132
130
 
133
131
  このようにしているのに大量のエラーが発生していて name という文字をつけて繰り返しアクセスを試みていると思われます。(初心者なのでよくわかりませんが...)
134
132
 
135
- htaccessがいけないのかサーバー側の設定がいけないのか分かりませんが、原因がわかる方に教えていただきたいです。
133
+ htaccessがいけないのかapache2.confの設定がいけないのか分かりませんが、原因がわかる方に教えていただきたいです。
136
134
 
137
135
 
138
136
 
139
137
  ### 環境
140
138
 
141
- サーバー:RaspberryPi
139
+ サーバー:Debian Buster with Raspberry Pi Desktop (Oracle VM VirtualBox仮想環境)
142
-
143
- 自宅サーバーなので設定変更はなんでもできます。
144
140
 
145
141
  apache:2.4.38(Debian)
146
142
 
@@ -154,16 +150,118 @@
154
150
 
155
151
  <Directory /var/www/>
156
152
 
157
- Options Includes FollowSymLinks
153
+ Options FollowSymLinks
158
154
 
159
155
  AllowOverride All
160
156
 
161
157
  Require all granted
162
158
 
163
- AddType text/html .html
164
-
165
- AddOutputFilter INCLUDES .html
166
-
167
159
  </Directory>
168
160
 
169
161
  ```
162
+
163
+ ### 環境(詳細)
164
+
165
+ "ブラウザに表示されるURLが example.com/name/yamada/ となってしまう"というのは、あり得ない
166
+
167
+ と指摘されましたが、どうしても name が表示されてしまいます。
168
+
169
+ 時間のある方は全く同じ環境を再現して頂きたいです。
170
+
171
+
172
+
173
+ ・用意するもの
174
+
175
+ - 仮想で動かすソフト(Oracle VM VirtualBox など)
176
+
177
+ [Oracle VM VirtualBox](https://www.oracle.com/technetwork/jp/server-storage/virtualbox/overview/index.html)
178
+
179
+ - DebianのISO
180
+
181
+ [Raspberry Pi Desktop](https://www.raspberrypi.org/downloads/raspberry-pi-desktop/)
182
+
183
+
184
+
185
+ ・手順
186
+
187
+ OSインストール完了までは省略します。
188
+
189
+ 難しいことは書きません。以下をコピペで再現できると思います。
190
+
191
+ ```ssh
192
+
193
+ sudo apt-get update
194
+
195
+ sudo apt-get install apache2
196
+
197
+ sudo nano /etc/apache2/apache2.conf
198
+
199
+ ```
200
+
201
+ 編集
202
+
203
+ ```
204
+
205
+ <Directory /var/www/>
206
+
207
+ Options FollowSymLinks
208
+
209
+ AllowOverride All
210
+
211
+ Require all granted
212
+
213
+ </Directory>
214
+
215
+ ```
216
+
217
+ 一番下に追記
218
+
219
+ ```
220
+
221
+ LoadModule include_module modules/mod_include.so
222
+
223
+ ```
224
+
225
+ Ctrl + O で上書き
226
+
227
+ Ctrl + X で閉じる
228
+
229
+ ```ssh
230
+
231
+ sudo cp -r /usr/lib/apache2/modules /etc/apache2/modules
232
+
233
+ sudo a2enmod rewrite
234
+
235
+ sudo service apache2 restart
236
+
237
+ cd /var/www/html
238
+
239
+ sudo mkdir name
240
+
241
+ cd name
242
+
243
+ sudo mkdir yamada
244
+
245
+ sudo nano index.html
246
+
247
+ ```
248
+
249
+ ```
250
+
251
+ <p>山田</p>
252
+
253
+ ```
254
+
255
+ 上書き&閉じる
256
+
257
+ ------設定完了------
258
+
259
+ 同じネットワーク内からブラウザで
260
+
261
+ http://[IPアドレス]/yamada
262
+
263
+ にアクセスしても
264
+
265
+ http://[IPアドレス]/name/yamada
266
+
267
+ になると思います。

4

書式を大幅に変更しました。ログ内容を追記しました。

2020/07/23 10:55

投稿

yuzusan
yuzusan

スコア7

test CHANGED
@@ -1 +1 @@
1
- htaccessを使いディレクトリの一部を省略しアクセスできるよする
1
+ htaccess Rewriteを使するがエラーが発生する
test CHANGED
@@ -1,12 +1,14 @@
1
1
  ### やりたいこと
2
2
 
3
- ディレクトリの一部を省略しアクセスする
3
+ ディレクトリの一部を省略しアクセスする
4
+
5
+ ・ブラウザ表示上のURLは変えない
4
6
 
5
7
 
6
8
 
7
9
  ブラウザ上の表示URL(例)
8
10
 
9
- example.com/sato/
11
+ example.com/yamada/
10
12
 
11
13
  example.com/suzuki/profile.jpg
12
14
 
@@ -16,7 +18,7 @@
16
18
 
17
19
  実際にアクセスしているURL
18
20
 
19
- example.com/name/sato/
21
+ example.com/name/yamada/
20
22
 
21
23
  example.com/name/suzuki/profile.jpg
22
24
 
@@ -24,71 +26,7 @@
24
26
 
25
27
 
26
28
 
27
- 実際にアクセスしているフォルダーの name を省略したい。
28
-
29
-
30
-
31
- nameディレクトリ以外の実際に存在するファイルに対しては通常通りアクセスしたいです。
32
-
33
- サーバー上に複数のファイルやフォルダーがあり、RewriteCond (?)を使い除外するファルダをすべて書くことはほぼ不可能です。
34
-
35
-
36
-
37
- 実際にアクセスしたURLやnameをつけたURLにアクセスしようとしても存在しなかった場合は、404 not foundを返したいです。
38
-
39
-
40
-
41
- ### 参考にしがうまく動作せず
29
+ ### やっこと
42
-
43
- https://teratail.com/questions/67475
44
-
45
- こちらを参考にやってみましたがうまく動作しません。
46
-
47
-
48
-
49
- 試したこと①
50
-
51
- example.com/sato/
52
-
53
- ```htaccess
54
-
55
- RewriteEngine on
56
-
57
- RewriteRule name/(.*) $1 [R=301]
58
-
59
- ```
60
-
61
- 404 Not Found になります。
62
-
63
- access.logを見てもアクセス先は /sato/ になっています。
64
-
65
-
66
-
67
- 試したこと② 回答ありがとうございます。
68
-
69
- example.com/sato/
70
-
71
- ```htaccess
72
-
73
- RewriteEngine on
74
-
75
- RewriteBase /
76
-
77
- RewriteCond %{REQUEST_URI} !(^/name$)
78
-
79
- RewriteRule ^(.*)$ /name/$1 [R=301,L]
80
-
81
- ```
82
-
83
- リダイレクトが繰り返し行われてしまいます。
84
-
85
- ブラウザ表示上のURLは example.com/name/name/name/name/name/name(省略・・・)/sato/ になります。
86
-
87
- 編集内容 htaccess 3行目、 (^/name$)を(^/name/$)にしましたが状況は変わらず。
88
-
89
-
90
-
91
- 試したこと③ 回答ありがとうございます。
92
30
 
93
31
  ```htaccess
94
32
 
@@ -100,29 +38,101 @@
100
38
 
101
39
  RewriteCond %{REQUEST_URL} !^/name/
102
40
 
103
- RewriteRule ^(.*)$ /name/$1
41
+ RewriteRule ^(.*)$ /name/$1`
104
42
 
105
43
  ```
106
44
 
107
- example.com/sato/ にアクセスした場合
45
+ ① example.com/yamada/ にアクセス
108
46
 
109
- ブラウザ表示上のURL example.com/name/sato/ ます。
47
+ → ブラウザ表示されるURL example.com/name/yamada/ ってしい name が表示されてしまう。でが内容はきちんと表示されます
110
-
111
- やりたい事と似ていますが、 name が表示されてしまいます。
112
48
 
113
49
 
114
50
 
115
- example.com/SATO/
116
51
 
117
- example.com/satooo/ にアクセスした場合、Internal Server Errorが発生します。
118
52
 
119
- nameディレクトリ以外の実際存在するファイルにアクセスした場合は、正しくアクセスできます。
53
+ ② example.com/yama/ にアクセス(存在ないフォルダ)
54
+
55
+ → Internal Server Errorになってしまい、error.logを見ると以下のようになっていて、
120
56
 
121
57
  ```log
122
58
 
123
- AH00124: Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.
59
+ [Sat Jun 06 10:39:55.690590 2020] [core:error] [pid 1398] [client 192.168.10.101:50114] AH00124: Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.
124
60
 
125
61
  ```
62
+
63
+ 'LogLevel debug' debugの状態でlogを見ると、
64
+
65
+ ```log
66
+
67
+ [Sat Jun 06 11:04:25.664214 2020] [authz_core:debug] [pid 1567] mod_authz_core.c(820): [client 192.168.10.101:50387] AH01626: authorization result of Require all granted: granted
68
+
69
+ [Sat Jun 06 11:04:25.664259 2020] [authz_core:debug] [pid 1567] mod_authz_core.c(820): [client 192.168.10.101:50387] AH01626: authorization result of <RequireAny>: granted
70
+
71
+ [Sat Jun 06 11:04:25.664728 2020] [core:error] [pid 1567] [client 192.168.10.101:50387] AH00124: Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.
72
+
73
+ [Sat Jun 06 11:04:25.664748 2020] [core:debug] [pid 1567] core.c(3833): [client 192.168.10.101:50387] AH00121: r->uri = /name/name/name/name/name/name/name/name/name/name/yama
74
+
75
+ [Sat Jun 06 11:04:25.664762 2020] [core:debug] [pid 1567] core.c(3840): [client 192.168.10.101:50387] AH00122: redirected from r->uri = /name/name/name/name/name/name/name/name/name/yama
76
+
77
+ [Sat Jun 06 11:04:25.664775 2020] [core:debug] [pid 1567] core.c(3840): [client 192.168.10.101:50387] AH00122: redirected from r->uri = /name/name/name/name/name/name/name/name/yama
78
+
79
+ [Sat Jun 06 11:04:25.664785 2020] [core:debug] [pid 1567] core.c(3840): [client 192.168.10.101:50387] AH00122: redirected from r->uri = /name/name/name/name/name/name/name/yama
80
+
81
+ [Sat Jun 06 11:04:25.664795 2020] [core:debug] [pid 1567] core.c(3840): [client 192.168.10.101:50387] AH00122: redirected from r->uri = /name/name/name/name/name/name/yama
82
+
83
+ [Sat Jun 06 11:04:25.664805 2020] [core:debug] [pid 1567] core.c(3840): [client 192.168.10.101:50387] AH00122: redirected from r->uri = /name/name/name/name/name/yama
84
+
85
+ [Sat Jun 06 11:04:25.664815 2020] [core:debug] [pid 1567] core.c(3840): [client 192.168.10.101:50387] AH00122: redirected from r->uri = /name/name/name/name/yama
86
+
87
+ [Sat Jun 06 11:04:25.664829 2020] [core:debug] [pid 1567] core.c(3840): [client 192.168.10.101:50387] AH00122: redirected from r->uri = /name/name/name/yama
88
+
89
+ [Sat Jun 06 11:04:25.664842 2020] [core:debug] [pid 1567] core.c(3840): [client 192.168.10.101:50387] AH00122: redirected from r->uri = /name/name/yama
90
+
91
+ [Sat Jun 06 11:04:25.664852 2020] [core:debug] [pid 1567] core.c(3840): [client 192.168.10.101:50387] AH00122: redirected from r->uri = /name/yama
92
+
93
+ [Sat Jun 06 11:04:25.664861 2020] [core:debug] [pid 1567] core.c(3840): [client 192.168.10.101:50387] AH00122: redirected from r->uri = /yama
94
+
95
+ [Sat Jun 06 11:04:25.728630 2020] [authz_core:debug] [pid 1569] mod_authz_core.c(820): [client 192.168.10.101:50388] AH01626: authorization result of Require all granted: granted, referer: http://192.168.10.200/yama
96
+
97
+ [Sat Jun 06 11:04:25.728671 2020] [authz_core:debug] [pid 1569] mod_authz_core.c(820): [client 192.168.10.101:50388] AH01626: authorization result of <RequireAny>: granted, referer: http://192.168.10.200/yama
98
+
99
+ [Sat Jun 06 11:04:25.729116 2020] [core:error] [pid 1569] [client 192.168.10.101:50388] AH00124: Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace., referer: http://192.168.10.200/yama
100
+
101
+ [Sat Jun 06 11:04:25.729131 2020] [core:debug] [pid 1569] core.c(3833): [client 192.168.10.101:50388] AH00121: r->uri = /name/name/name/name/name/name/name/name/name/name/favicon.ico, referer: http://192.168.10.200/yama
102
+
103
+ [Sat Jun 06 11:04:25.729141 2020] [core:debug] [pid 1569] core.c(3840): [client 192.168.10.101:50388] AH00122: redirected from r->uri = /name/name/name/name/name/name/name/name/name/favicon.ico, referer: http://192.168.10.200/yama
104
+
105
+ [Sat Jun 06 11:04:25.729151 2020] [core:debug] [pid 1569] core.c(3840): [client 192.168.10.101:50388] AH00122: redirected from r->uri = /name/name/name/name/name/name/name/name/favicon.ico, referer: http://192.168.10.200/yama
106
+
107
+ [Sat Jun 06 11:04:25.729161 2020] [core:debug] [pid 1569] core.c(3840): [client 192.168.10.101:50388] AH00122: redirected from r->uri = /name/name/name/name/name/name/name/favicon.ico, referer: http://192.168.10.200/yama
108
+
109
+ [Sat Jun 06 11:04:25.729171 2020] [core:debug] [pid 1569] core.c(3840): [client 192.168.10.101:50388] AH00122: redirected from r->uri = /name/name/name/name/name/name/favicon.ico, referer: http://192.168.10.200/yama
110
+
111
+ [Sat Jun 06 11:04:25.729180 2020] [core:debug] [pid 1569] core.c(3840): [client 192.168.10.101:50388] AH00122: redirected from r->uri = /name/name/name/name/name/favicon.ico, referer: http://192.168.10.200/yama
112
+
113
+ [Sat Jun 06 11:04:25.729190 2020] [core:debug] [pid 1569] core.c(3840): [client 192.168.10.101:50388] AH00122: redirected from r->uri = /name/name/name/name/favicon.ico, referer: http://192.168.10.200/yama
114
+
115
+ [Sat Jun 06 11:04:25.729199 2020] [core:debug] [pid 1569] core.c(3840): [client 192.168.10.101:50388] AH00122: redirected from r->uri = /name/name/name/favicon.ico, referer: http://192.168.10.200/yama
116
+
117
+ [Sat Jun 06 11:04:25.729208 2020] [core:debug] [pid 1569] core.c(3840): [client 192.168.10.101:50388] AH00122: redirected from r->uri = /name/name/favicon.ico, referer: http://192.168.10.200/yama
118
+
119
+ [Sat Jun 06 11:04:25.729218 2020] [core:debug] [pid 1569] core.c(3840): [client 192.168.10.101:50388] AH00122: redirected from r->uri = /name/favicon.ico, referer: http://192.168.10.200/yama
120
+
121
+ [Sat Jun 06 11:04:25.729227 2020] [core:debug] [pid 1569] core.c(3840): [client 192.168.10.101:50388] AH00122: redirected from r->uri = /favicon.ico, referer: http://192.168.10.200/yama
122
+
123
+ ```
124
+
125
+ htaccessで
126
+
127
+ ```htaccess
128
+
129
+ RewriteCond %{REQUEST_URL} !^/name/
130
+
131
+ ```
132
+
133
+ このようにしているのに大量のエラーが発生していて name という文字をつけて繰り返しアクセスを試みていると思われます。(初心者なのでよくわかりませんが...)
134
+
135
+ htaccessがいけないのかサーバー側の設定がいけないのか分かりませんが、原因がわかる方に教えていただきたいです。
126
136
 
127
137
 
128
138
 

3

ご回答に対しての追記

2020/06/06 02:22

投稿

yuzusan
yuzusan

スコア7

test CHANGED
File without changes
test CHANGED
@@ -64,7 +64,7 @@
64
64
 
65
65
 
66
66
 
67
- 試したこと②
67
+ 試したこと② 回答ありがとうございます。
68
68
 
69
69
  example.com/sato/
70
70
 
@@ -84,19 +84,45 @@
84
84
 
85
85
  ブラウザ表示上のURLは example.com/name/name/name/name/name/name(省略・・・)/sato/ になります。
86
86
 
87
+ 編集内容 htaccess 3行目、 (^/name$)を(^/name/$)にしましたが状況は変わらず。
87
88
 
88
89
 
89
- 試したこと③
90
90
 
91
- Internal Server Error表示されてしまいます。
91
+ 試したこ③ 回答ありがとうございます。
92
92
 
93
- ```ここに言語を入力
93
+ ```htaccess
94
94
 
95
+ RewriteEngine On
96
+
97
+ RewriteCond %{REQUEST_FILENAME} !-f
98
+
99
+ RewriteCond %{REQUEST_FILENAME} !-d
100
+
95
- Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace_
101
+ RewriteCond %{REQUEST_URL} !^/name/
102
+
103
+ RewriteRule ^(.*)$ /name/$1
96
104
 
97
105
  ```
98
106
 
99
- htaccess記載した内容は忘れましたが、このようなエラーが出る場合もあります。
107
+ example.com/sato/ アクセスした場合
108
+
109
+ ブラウザ表示上のURLは example.com/name/sato/ になります。
110
+
111
+ やりたい事と似ていますが、 name が表示されてしまいます。
112
+
113
+
114
+
115
+ example.com/SATO/
116
+
117
+ example.com/satooo/ にアクセスした場合、Internal Server Errorが発生します。
118
+
119
+ nameディレクトリ以外の実際に存在するファイルにアクセスした場合は、正しくアクセスできます。
120
+
121
+ ```log
122
+
123
+ AH00124: Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.
124
+
125
+ ```
100
126
 
101
127
 
102
128
 

2

追記、内容の改善をしました。

2020/06/04 11:47

投稿

yuzusan
yuzusan

スコア7

test CHANGED
File without changes
test CHANGED
@@ -74,7 +74,7 @@
74
74
 
75
75
  RewriteBase /
76
76
 
77
- RewriteCond %{REQUEST_URI} !(^/guild$)
77
+ RewriteCond %{REQUEST_URI} !(^/name$)
78
78
 
79
79
  RewriteRule ^(.*)$ /name/$1 [R=301,L]
80
80
 

1

追記、内容の改善をしました。

2020/06/04 10:48

投稿

yuzusan
yuzusan

スコア7

test CHANGED
File without changes
test CHANGED
@@ -44,7 +44,51 @@
44
44
 
45
45
  こちらを参考にやってみましたがうまく動作しません。
46
46
 
47
+
48
+
49
+ 試したこと①
50
+
51
+ example.com/sato/
52
+
53
+ ```htaccess
54
+
55
+ RewriteEngine on
56
+
57
+ RewriteRule name/(.*) $1 [R=301]
58
+
59
+ ```
60
+
61
+ 404 Not Found になります。
62
+
63
+ access.logを見てもアクセス先は /sato/ になっています。
64
+
65
+
66
+
67
+ 試したこと②
68
+
69
+ example.com/sato/
70
+
71
+ ```htaccess
72
+
73
+ RewriteEngine on
74
+
75
+ RewriteBase /
76
+
77
+ RewriteCond %{REQUEST_URI} !(^/guild$)
78
+
79
+ RewriteRule ^(.*)$ /name/$1 [R=301,L]
80
+
81
+ ```
82
+
83
+ リダイレクトが繰り返し行われてしまいます。
84
+
85
+ ブラウザ表示上のURLは example.com/name/name/name/name/name/name(省略・・・)/sato/ になります。
86
+
87
+
88
+
89
+ 試したこと③
90
+
47
- Internal Server Errorと表示されてしまいます
91
+ Internal Server Errorと表示されてしまいます
48
92
 
49
93
  ```ここに言語を入力
50
94
 
@@ -52,11 +96,15 @@
52
96
 
53
97
  ```
54
98
 
99
+ htaccessに記載した内容は忘れましたが、このようなエラーが出る場合もあります。
100
+
55
101
 
56
102
 
57
103
  ### 環境
58
104
 
59
105
  サーバー:RaspberryPi
106
+
107
+ 自宅サーバーなので設定変更はなんでもできます。
60
108
 
61
109
  apache:2.4.38(Debian)
62
110
 
@@ -64,4 +112,22 @@
64
112
 
65
113
 
66
114
 
67
- 自宅サーバーなので設定変更はなんでもできます。
115
+ apache2.conf一部です。
116
+
117
+ ```
118
+
119
+ <Directory /var/www/>
120
+
121
+ Options Includes FollowSymLinks
122
+
123
+ AllowOverride All
124
+
125
+ Require all granted
126
+
127
+ AddType text/html .html
128
+
129
+ AddOutputFilter INCLUDES .html
130
+
131
+ </Directory>
132
+
133
+ ```