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

回答編集履歴

4

回答修正

2020/03/18 12:16

投稿

Y.H.
Y.H.

スコア7918

answer CHANGED
@@ -26,9 +26,11 @@
26
26
  if ($uri == '/' && $lang == 'en') {
27
27
  $url = get_site_url()."/$lang/";
28
28
  header("Location: $url");
29
+ exit;
29
30
  } else if ($uri == '/en/' && $lang == 'ja') {
30
31
  $url = get_site_url()."/";
31
32
  header("Location: $url");
33
+ exit;
32
34
  }
33
35
  ```
34
36
 

3

回答修正

2020/03/18 12:16

投稿

Y.H.
Y.H.

スコア7918

answer CHANGED
@@ -7,6 +7,7 @@
7
7
 
8
8
  これ↑をそのままコードにしました。
9
9
  ```php
10
+ $uri = $_SERVER["REQUEST_URI"];
10
11
  $BASE_LANG = "en";
11
12
  $languages = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
12
13
  $lang = $BASE_LANG;

2

誤記修正

2020/03/18 09:50

投稿

Y.H.
Y.H.

スコア7918

answer CHANGED
@@ -1,10 +1,11 @@
1
1
  https://example.com/ にアクセスしたとき、
2
-  ・英語なら /en へリダイレクト
2
+  ・英語なら /en/ へリダイレクト
3
3
   ・日本語ならそのまま
4
- https://example.com/en にアクセスしたとき、
4
+ https://example.com/en/ にアクセスしたとき、
5
5
   ・英語ならそのまま
6
6
   ・日本語なら / へリダイレクト
7
7
 
8
+ これ↑をそのままコードにしました。
8
9
  ```php
9
10
  $BASE_LANG = "en";
10
11
  $languages = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);

1

追記

2020/03/18 09:23

投稿

Y.H.
Y.H.

スコア7918

answer CHANGED
@@ -1,3 +1,37 @@
1
+ https://example.com/ にアクセスしたとき、
2
+  ・英語なら /en へリダイレクト
3
+  ・日本語ならそのまま
4
+ https://example.com/en にアクセスしたとき、
5
+  ・英語ならそのまま
6
+  ・日本語なら / へリダイレクト
7
+
8
+ ```php
9
+ $BASE_LANG = "en";
10
+ $languages = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
11
+ $lang = $BASE_LANG;
12
+ if(isset($languages)){ //languagesが空ではないとき
13
+ $browser_lamguage = $languages[0];
14
+ $base_languages = array('ja','en');
15
+
16
+ foreach($base_languages as $base_language){
17
+ if(preg_match("/^$base_language/i", $browser_lamguage)){
18
+ $lang = $base_language;
19
+ break;
20
+ }
21
+ }
22
+ }
23
+
24
+ if ($uri == '/' && $lang == 'en') {
25
+ $url = get_site_url()."/$lang/";
26
+ header("Location: $url");
27
+ } else if ($uri == '/en/' && $lang == 'ja') {
28
+ $url = get_site_url()."/";
29
+ header("Location: $url");
30
+ }
31
+ ```
32
+
33
+ ----
34
+
1
35
  これ↓必ずTrueになりますよ。この条件でFalseになることはありませんね。
2
36
 
3
37
  OR(`||`)じゃなくAND(`&&`)ですよね?