回答編集履歴

5

修正

2017/06/02 06:01

投稿

shi_ue
shi_ue

スコア4437

test CHANGED
@@ -84,4 +84,4 @@
84
84
 
85
85
 
86
86
 
87
- URLは`http://example.jp`に書き換わりませんが、ちゃんとindex.phpが呼ばれてパラメーターが引き渡されているので、これでいいんじゃないでしょうか?違う?
87
+ URLは`http://example.jp`に書き換わりませんが、ちゃんと`data`が呼ばれてパラメーターが引き渡されているので、これでいいんじゃないでしょうか?違う?

4

変更

2017/06/02 06:01

投稿

shi_ue
shi_ue

スコア4437

test CHANGED
@@ -58,7 +58,7 @@
58
58
 
59
59
  RewriteCond %{HTTP_HOST} ^(.*)\.example\.jp$
60
60
 
61
- RewriteRule ^(.*)$ /?mode=%1&id=$1
61
+ RewriteRule ^(.*)$ data?mode=%1&id=$1
62
62
 
63
63
  ```これでどうでしょう?
64
64
 

3

結果を追記

2017/06/02 05:51

投稿

shi_ue
shi_ue

スコア4437

test CHANGED
@@ -65,3 +65,23 @@
65
65
  ちなみに、`http://apple.example.jp/?u=123`など`QUERY_STRING`が入ってしまうとリライトしません。
66
66
 
67
67
  もうひと工夫必要かもしれませんが・・・
68
+
69
+
70
+
71
+ 結果は以下のようになります。
72
+
73
+ |元アドレス|Rwrite結果(index.phpに渡されるパラメーター)|
74
+
75
+ |:--|:--|
76
+
77
+ |http://apple.example.jp|mode=apple&id=|
78
+
79
+ |http://apple.example.jp/123|mode=apple&id=123|
80
+
81
+ |http://apple.example.jp?t=123|Rewriteされず(t=123)|
82
+
83
+ |http://example.jp|Rewriteされず|
84
+
85
+
86
+
87
+ URLは`http://example.jp`に書き換わりませんが、ちゃんとindex.phpが呼ばれてパラメーターが引き渡されているので、これでいいんじゃないでしょうか?違う?

2

追記2

2017/06/02 04:52

投稿

shi_ue
shi_ue

スコア4437

test CHANGED
@@ -41,3 +41,27 @@
41
41
  もしこのように動作しない場合、他の設定箇所を確認してみてください。
42
42
 
43
43
  Rewrite系の設定がどこかにあるかもしれません。
44
+
45
+
46
+
47
+ 追記2
48
+
49
+ ---
50
+
51
+ なんか言っている意味が理解できてきました。
52
+
53
+ ```
54
+
55
+ RewriteEngine On
56
+
57
+ RewriteCond %{QUERY_STRING} ^$
58
+
59
+ RewriteCond %{HTTP_HOST} ^(.*)\.example\.jp$
60
+
61
+ RewriteRule ^(.*)$ /?mode=%1&id=$1
62
+
63
+ ```これでどうでしょう?
64
+
65
+ ちなみに、`http://apple.example.jp/?u=123`など`QUERY_STRING`が入ってしまうとリライトしません。
66
+
67
+ もうひと工夫必要かもしれませんが・・・

1

追記

2017/06/02 04:46

投稿

shi_ue
shi_ue

スコア4437

test CHANGED
@@ -5,3 +5,39 @@
5
5
  RewriteRule ^$ http://example.jp/data?mode=%1 [L]
6
6
 
7
7
  ```でどうでしょう?
8
+
9
+ 追記
10
+
11
+ ---
12
+
13
+ Bash on Ubuntu on Windows上で検証してみました。Apacheは`2.4.18`です。
14
+
15
+ ```
16
+
17
+ RewriteEngine On
18
+
19
+ RewriteCond %{HTTP_HOST} ^(.*)\.example\.jp$
20
+
21
+ RewriteRule ^(.*)$ http://example.jp/?mode=%1&id=$1 [L]
22
+
23
+ ```
24
+
25
+ 以上のように設定すると、
26
+
27
+ |元アドレス|Rwrite結果|
28
+
29
+ |:--|:--|
30
+
31
+ |http://apple.example.jp|http://example.jp/mode=apple&id=|
32
+
33
+ |http://apple.example.jp/123|http://example.jp/mode=apple&id=123|
34
+
35
+ |http://example.jp|Rewriteされず|
36
+
37
+
38
+
39
+ のようにRewriteされました。
40
+
41
+ もしこのように動作しない場合、他の設定箇所を確認してみてください。
42
+
43
+ Rewrite系の設定がどこかにあるかもしれません。