回答編集履歴

4

回答修正

2020/03/18 12:16

投稿

Y.H.
Y.H.

スコア7914

test CHANGED
@@ -54,11 +54,15 @@
54
54
 
55
55
  header("Location: $url");
56
56
 
57
+ exit;
58
+
57
59
  } else if ($uri == '/en/' && $lang == 'ja') {
58
60
 
59
61
  $url = get_site_url()."/";
60
62
 
61
63
  header("Location: $url");
64
+
65
+ exit;
62
66
 
63
67
  }
64
68
 

3

回答修正

2020/03/18 12:16

投稿

Y.H.
Y.H.

スコア7914

test CHANGED
@@ -15,6 +15,8 @@
15
15
  これ↑をそのままコードにしました。
16
16
 
17
17
  ```php
18
+
19
+ $uri = $_SERVER["REQUEST_URI"];
18
20
 
19
21
  $BASE_LANG = "en";
20
22
 

2

誤記修正

2020/03/18 09:50

投稿

Y.H.
Y.H.

スコア7914

test CHANGED
@@ -1,16 +1,18 @@
1
1
  https://example.com/ にアクセスしたとき、
2
2
 
3
-  ・英語なら /en へリダイレクト
3
+  ・英語なら /en/ へリダイレクト
4
4
 
5
5
   ・日本語ならそのまま
6
6
 
7
- https://example.com/en にアクセスしたとき、
7
+ https://example.com/en/ にアクセスしたとき、
8
8
 
9
9
   ・英語ならそのまま
10
10
 
11
11
   ・日本語なら / へリダイレクト
12
12
 
13
13
 
14
+
15
+ これ↑をそのままコードにしました。
14
16
 
15
17
  ```php
16
18
 

1

追記

2020/03/18 09:23

投稿

Y.H.
Y.H.

スコア7914

test CHANGED
@@ -1,3 +1,71 @@
1
+ https://example.com/ にアクセスしたとき、
2
+
3
+  ・英語なら /en へリダイレクト
4
+
5
+  ・日本語ならそのまま
6
+
7
+ https://example.com/en にアクセスしたとき、
8
+
9
+  ・英語ならそのまま
10
+
11
+  ・日本語なら / へリダイレクト
12
+
13
+
14
+
15
+ ```php
16
+
17
+ $BASE_LANG = "en";
18
+
19
+ $languages = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
20
+
21
+ $lang = $BASE_LANG;
22
+
23
+ if(isset($languages)){ //languagesが空ではないとき
24
+
25
+ $browser_lamguage = $languages[0];
26
+
27
+ $base_languages = array('ja','en');
28
+
29
+
30
+
31
+ foreach($base_languages as $base_language){
32
+
33
+ if(preg_match("/^$base_language/i", $browser_lamguage)){
34
+
35
+ $lang = $base_language;
36
+
37
+ break;
38
+
39
+ }
40
+
41
+ }
42
+
43
+ }
44
+
45
+
46
+
47
+ if ($uri == '/' && $lang == 'en') {
48
+
49
+ $url = get_site_url()."/$lang/";
50
+
51
+ header("Location: $url");
52
+
53
+ } else if ($uri == '/en/' && $lang == 'ja') {
54
+
55
+ $url = get_site_url()."/";
56
+
57
+ header("Location: $url");
58
+
59
+ }
60
+
61
+ ```
62
+
63
+
64
+
65
+ ----
66
+
67
+
68
+
1
69
  これ↓必ずTrueになりますよ。この条件でFalseになることはありませんね。
2
70
 
3
71