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

回答編集履歴

5

修正

2017/06/02 06:01

投稿

shi_ue
shi_ue

スコア4437

answer CHANGED
@@ -41,4 +41,4 @@
41
41
  |http://apple.example.jp?t=123|Rewriteされず(t=123)|
42
42
  |http://example.jp|Rewriteされず|
43
43
 
44
- URLは`http://example.jp`に書き換わりませんが、ちゃんとindex.phpが呼ばれてパラメーターが引き渡されているので、これでいいんじゃないでしょうか?違う?
44
+ URLは`http://example.jp`に書き換わりませんが、ちゃんと`data`が呼ばれてパラメーターが引き渡されているので、これでいいんじゃないでしょうか?違う?

4

変更

2017/06/02 06:01

投稿

shi_ue
shi_ue

スコア4437

answer CHANGED
@@ -28,7 +28,7 @@
28
28
  RewriteEngine On
29
29
  RewriteCond %{QUERY_STRING} ^$
30
30
  RewriteCond %{HTTP_HOST} ^(.*)\.example\.jp$
31
- RewriteRule ^(.*)$ /?mode=%1&id=$1
31
+ RewriteRule ^(.*)$ data?mode=%1&id=$1
32
32
  ```これでどうでしょう?
33
33
  ちなみに、`http://apple.example.jp/?u=123`など`QUERY_STRING`が入ってしまうとリライトしません。
34
34
  もうひと工夫必要かもしれませんが・・・

3

結果を追記

2017/06/02 05:51

投稿

shi_ue
shi_ue

スコア4437

answer CHANGED
@@ -31,4 +31,14 @@
31
31
  RewriteRule ^(.*)$ /?mode=%1&id=$1
32
32
  ```これでどうでしょう?
33
33
  ちなみに、`http://apple.example.jp/?u=123`など`QUERY_STRING`が入ってしまうとリライトしません。
34
- もうひと工夫必要かもしれませんが・・・
34
+ もうひと工夫必要かもしれませんが・・・
35
+
36
+ 結果は以下のようになります。
37
+ |元アドレス|Rwrite結果(index.phpに渡されるパラメーター)|
38
+ |:--|:--|
39
+ |http://apple.example.jp|mode=apple&id=|
40
+ |http://apple.example.jp/123|mode=apple&id=123|
41
+ |http://apple.example.jp?t=123|Rewriteされず(t=123)|
42
+ |http://example.jp|Rewriteされず|
43
+
44
+ URLは`http://example.jp`に書き換わりませんが、ちゃんとindex.phpが呼ばれてパラメーターが引き渡されているので、これでいいんじゃないでしょうか?違う?

2

追記2

2017/06/02 04:52

投稿

shi_ue
shi_ue

スコア4437

answer CHANGED
@@ -19,4 +19,16 @@
19
19
 
20
20
  のようにRewriteされました。
21
21
  もしこのように動作しない場合、他の設定箇所を確認してみてください。
22
- Rewrite系の設定がどこかにあるかもしれません。
22
+ Rewrite系の設定がどこかにあるかもしれません。
23
+
24
+ 追記2
25
+ ---
26
+ なんか言っている意味が理解できてきました。
27
+ ```
28
+ RewriteEngine On
29
+ RewriteCond %{QUERY_STRING} ^$
30
+ RewriteCond %{HTTP_HOST} ^(.*)\.example\.jp$
31
+ RewriteRule ^(.*)$ /?mode=%1&id=$1
32
+ ```これでどうでしょう?
33
+ ちなみに、`http://apple.example.jp/?u=123`など`QUERY_STRING`が入ってしまうとリライトしません。
34
+ もうひと工夫必要かもしれませんが・・・

1

追記

2017/06/02 04:46

投稿

shi_ue
shi_ue

スコア4437

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